Versiones de extensiones de PostgreSQL compatibles - Amazon Relational Database Service

Versiones de extensiones de PostgreSQL compatibles

RDS for PostgreSQL admite muchas extensiones de PostgreSQL. La comunidad de PostgreSQL a veces se refiere a estos como módulos. Las extensiones amplían la funcionalidad proporcionada por el motor PostgreSQL. Puede encontrar una lista de las extensiones admitidas por Amazon RDS en el grupo de parámetros de base de datos predeterminado de esa versión de PostgreSQL. También puede ver la lista de extensiones actuales que usan psql mostrando el parámetro rds.extensions como en el siguiente ejemplo.

SHOW rds.extensions;
nota

Los parámetros añadidos en una versión secundaria pueden mostrarse de manera incorrecta cuando se utiliza el parámetro rds.extensions en psql.

A partir de RDS para PostgreSQL 13, ciertas extensiones pueden instalarlas usuarios de bases de datos que no sean rds_superuser. Esto se conoce como extensiones de confianza. Para obtener más información, consulte Extensiones de confianza de PostgreSQL.

Ciertas versiones de RDS para PostgreSQL admiten el parámetro rds.allowed_extensions. Este parámetro permite que un rds_superuser limite las extensiones que se pueden instalar en la instancia de base de datos de RDS para PostgreSQL. Para obtener más información, consulte Restringir la instalación de extensiones de PostgreSQL.

Para obtener una lista de las extensiones y versiones de PostgreSQL compatibles con cada versión disponible de RDS para PostgreSQL, consulte Extensiones de PostgreSQL admitidas en Amazon RDS en las Notas de la versión de Amazon RDS para PostgreSQL.

Restringir la instalación de extensiones de PostgreSQL

Puede restringir qué extensiones se pueden instalar en una instancia de base de datos de PostgreSQL. De forma predeterminada, este parámetro no está configurado, por lo que se puede agregar cualquier extensión compatible si el usuario tiene permisos para hacerlo. Para ello, establezca el parámetro rds.allowed_extensions en una cadena de nombres de extensión separados por comas. Al agregar una lista de extensiones a este parámetro, identifica explícitamente las extensiones que puede utilizar su instancia de base de datos de RDS para PostgreSQL. Solo estas extensiones se pueden instalar en la instancia de base de datos de PostgreSQL.

La cadena predeterminada para el parámetro rds.allowed_extensions es '*', lo que significa que se puede instalar cualquier extensión disponible para la versión del motor. Cambiar el parámetro rds.allowed_extensions no requiere un reinicio de la base de datos porque es un parámetro dinámico.

El motor de instancia de base de datos de PostgreSQL debe ser una de las siguientes versiones para que pueda utilizar el parámetro:rds.allowed_extensions

  • Todas las versiones de PostgreSQL 16

  • PostgreSQL 15 y todas las versiones posteriores

  • PostgreSQL 14 y todas las versiones posteriores

  • PostgreSQL 13.3 y versiones secundarias posteriores

  • PostgreSQL 12.7 y versiones secundarias posteriores

Para ver qué instalaciones de extensión están permitidas, utilice el siguiente comando psql.

postgres=> SHOW rds.allowed_extensions; rds.allowed_extensions ------------------------ *

Si se instaló una extensión antes de dejarla fuera de la lista en el parámetro rds.allowed_extensions, la extensión todavía se puede utilizar normalmente y comandos como ALTER EXTENSION y DROP EXTENSION continuarán funcionando. Sin embargo, una vez restringida una extensión, los comandos CREATE EXTENSION de la extensión restringida fallarán.

La instalación de dependencias de extensión con CREATE EXTENSION CASCADE también están restringidas. La extensión y sus dependencias deben especificarse en rds.allowed_extensions. Si falla una instalación de dependencia de extensión, se producirá un error en toda la instrucción CREATE EXTENSION CASCADE.

Si no se incluye una extensión con el parámetro rds.allowed_extensions, verá un error como el siguiente si intenta instalarla.

ERROR: permission denied to create extension "extension-name" HINT: This extension is not specified in "rds.allowed_extensions".

Extensiones de confianza de PostgreSQL

Para instalar la mayoría de las extensiones de PostgreSQL requiere privilegios de rds_superuser. PostgreSQL 13 presentó extensiones de confianza, que reducen la necesidad de conceder privilegios rds_superuser a los usuarios normales. Con esta característica, los usuarios pueden instalar muchas extensiones si tienen el privilegio de CREATE en la base de datos actual en lugar de requerir el rol de rds_superuser. Para obtener más información, consulte el comando de SQL CREATE EXTENSION en la documentación de PostgreSQL.

A continuación se enumeran las extensiones que puede instalar un usuario que tiene el privilegio de CREATE en la base de datos actual y no requieren el rol de:rds_superuser

Para obtener una lista de las extensiones y versiones de PostgreSQL compatibles con cada versión disponible de RDS para PostgreSQL, consulte Extensiones de PostgreSQL admitidas en Amazon RDS en las Notas de la versión de Amazon RDS para PostgreSQL.