支持的 PostgreSQL 扩展版本
RDS for PostgreSQL 支持许多 PostgreSQL 扩展。PostgreSQL 社区有时将这些扩展称为模块。扩展针对 PostgreSQL 引擎提供的功能进行了扩展。您可以在 PostgreSQL 版本的默认数据库参数组中找到 Amazon RDS 支持的扩展列表。您还可使用 psql
通过显示 rds.extensions
参数来查看当前扩展列表,如以下示例中所示。
SHOW rds.extensions;
注意
在 rds.extensions
中使用 psql
参数时,可能不会准确显示在次要版本中添加的参数。
从 RDS for PostgreSQL 13 开始,某些扩展可以由数据库用户(而不是 rds_superuser
)安装。它们称为可信扩展。要了解更多信息,请参阅 PostgreSQL 可信扩展。
某些版本的 RDS for PostgreSQL 支持 rds.allowed_extensions
参数。这个参数允许 rds_superuser
限制可以在 RDS for PostgreSQL 数据库实例中安装的扩展。有关更多信息,请参阅 限制 PostgreSQL 扩展的安装。
对于每个可用 RDS For PostgreSQL 版本支持的 PostgreSQL 扩展和版本的列表,请参阅《Amazon RDS for PostgreSQL 版本注释》中的 Amazon RDS 上支持的 PostgreSQL 扩展。
限制 PostgreSQL 扩展的安装
您可以限制在 PostgreSQL 数据库实例上安装哪些扩展。默认情况下,不设置此参数,因此如果用户有添加扩展的权限,则可以添加任何受支持的扩展。为此,请将 rds.allowed_extensions
参数设置为一串以逗号分隔的扩展名称。通过向此参数添加扩展列表,您可以明确标识 RDS for PostgreSQL 数据库实例可使用的扩展。然后,只有这些扩展才能安装在 PostgreSQL 数据库实例中。
rds.allowed_extensions
参数的默认字符串为 '*',这意味着可以安装引擎版本可用的任何扩展。更改 rds.allowed_extensions
参数不需要重新启动数据库,因为它是动态参数。
PostgreSQL 数据库实例引擎必须是以下版本之一才能使用 rds.allowed_extensions
参数:
-
所有 PostgreSQL 16 版本
-
PostgreSQL 15 及所有更高版本
-
PostgreSQL 14 及所有更高版本
-
PostgreSQL 13.3 及更高的次要版本
-
PostgreSQL 12.7 及更高的次要版本
要查看允许哪些扩展安装,请使用以下 psql 命令。
postgres=>
SHOW rds.allowed_extensions;
rds.allowed_extensions ------------------------ *
如果扩展是在其被 rds.allowed_extensions
参数列表排除之前安装的,则该扩展仍可以正常使用,并且诸如 ALTER EXTENSION
和 DROP
EXTENSION
之类的命令将继续运行。但是,在扩展被限制后,限制扩展的 CREATE EXTENSION
命令将失败。
使用 CREATE EXTENSION CASCADE
安装扩展依赖项也受到限制。必须在 rds.allowed_extensions
中指定扩展及其依赖项。如果扩展依赖项安装失败,整个 CREATE EXTENSION CASCADE
语句将失败。
如果 rds.allowed_extensions
参数中未包含扩展,则尝试安装时将看到如下错误。
ERROR: permission denied to create extension "extension-name
"
HINT: This extension is not specified in "rds.allowed_extensions".
PostgreSQL 可信扩展
安装大部分 PostgreSQL 扩展都需要具备 rds_superuser
权限。PostgreSQL 13 推出了可信扩展,这些扩展减少了授予普通用户 rds_superuser
权限的需求。使用此特征,用户可以安装许多扩展(如果他们具有对当前数据库的 CREATE
权限,而不要求具备 rds_superuser
角色)。有关详细信息,请参阅 PostgreSQL 文档中的 SQL 创建扩展
下面列出了具有对当前数据库的 CREATE
权限,但不需要具备 rds_superuser
角色的用户可以安装的扩展:
-
bool_plperl
-
jsonb_plperl
对于每个可用 RDS For PostgreSQL 版本支持的 PostgreSQL 扩展和版本的列表,请参阅《Amazon RDS for PostgreSQL 版本注释》中的 Amazon RDS 上支持的 PostgreSQL 扩展。