在 RDS for PostgreSQL 数据库实例中设置可信语言扩展
以下步骤假设您的 RDS for PostgreSQL 数据库实例与自定义数据库参数组相关联。您可以使用 Amazon Web Services Management Console或 Amazon CLI 来执行这些步骤。
当您在 RDS for PostgreSQL 数据库实例中设置可信语言扩展时,您可以将其安装在特定的数据库中,供对该数据库拥有权限的数据库用户使用。
设置可信语言扩展
使用作为 rds_superuser
组(角色)成员的账户执行以下步骤。
登录 Amazon Web Services Management Console 并通过以下网址打开 Amazon RDS 控制台:https://console.aws.amazon.com/rds/
。 -
在导航窗格中,选择 RDS for PostgreSQL 数据库实例。
-
打开 的配置选项卡。RDS for PostgreSQL 数据库实例的 Configuration(配置)选项卡。在实例详细信息中,找到 Parameter group(参数组)链接。
-
选择此链接以打开与您的 RDS for PostgreSQL 数据库实例关联的自定义参数。
-
在 Parameters(参数)搜索字段中,键入
shared_pre
以查找shared_preload_libraries
参数。 -
选择 Edit parameters(编辑参数)以访问属性值。
-
将
pg_tle
添加到 Values(值)字段的列表中。使用逗号分隔值列表中的项目。 重启 RDS for PostgreSQL 数据库实例,以使对
shared_preload_libraries
参数的更改生效。当实例可用时,验证
pg_tle
是否已初始化。使用psql
连接到 RDS for PostgreSQL 数据库实例,然后运行以下命令。SHOW shared_preload_libraries;
shared_preload_libraries -------------------------- rdsutils,pg_tle (1 row)
初始化
pg_tle
扩展后,您现在可以创建此扩展了。CREATE EXTENSION pg_tle;
可以使用以下
psql
元命令验证扩展是否已安装。labdb=>
\dx
List of installed extensions Name | Version | Schema | Description ---------+---------+------------+-------------------------------------------- pg_tle | 1.0.1 | pgtle | Trusted-Language Extensions for PostgreSQL plpgsql | 1.0 | pg_catalog | PL/pgSQL procedural language
在设置 RDS for PostgreSQL 数据库实例时,将
pgtle_admin
角色授予为其创建的主用户名。如果您接受了默认值,则它就是postgres
。labdb=>
GRANT pgtle_admin TO postgres;GRANT ROLE
您可以使用
psql
元命令来验证授权是否已完成,如以下示例中所示。输出中仅显示pgtle_admin
和postgres
角色。有关更多信息,请参阅了解 rds_superuser 角色。labdb=>
\du
List of roles Role name | Attributes | Member of -----------------+---------------------------------+----------------------------------- pgtle_admin | Cannot login | {} postgres | Create role, Create DB +| {rds_superuser,pgtle_admin} | Password valid until infinity |...
使用
\q
元命令关闭psql
会话。\q
要开始创建 TLE 扩展,请参阅 示例:使用 SQL 创建可信语言扩展。
在使用 CLI 命令时,您可以通过将您的 Amazon CLI 配置为使用默认 Amazon Web Services 区域来避免指定 --region
参数。有关更多信息,请参阅《Amazon Command Line Interface 用户指南》中的配置基础知识。
设置可信语言扩展
使用 modify-db-parameter-group Amazon CLI 命令将
pg_tle
添加到shared_preload_libraries
参数。aws rds modify-db-parameter-group \ --db-parameter-group-name
custom-param-group-name
\ --parameters "ParameterName=shared_preload_libraries,ParameterValue=pg_tle,ApplyMethod=pending-reboot" \ --regionaws-region
-
使用 reboot-db-instance Amazon CLI 命令重启 RDS for PostgreSQL 数据库实例并初始化
pg_tle
库。aws rds reboot-db-instance \ --db-instance-identifier
your-instance
\ --regionaws-region
当实例可用时,您可以验证
pg_tle
是否已初始化。使用psql
连接到 RDS for PostgreSQL 数据库实例,然后运行以下命令。SHOW shared_preload_libraries;
shared_preload_libraries -------------------------- rdsutils,pg_tle (1 row)
初始化
pg_tle
后,您现在可以创建扩展了。CREATE EXTENSION pg_tle;
在设置 RDS for PostgreSQL 数据库实例时,将
pgtle_admin
角色授予为其创建的主用户名。如果您接受了默认值,则它就是postgres
。GRANT pgtle_admin TO postgres;
GRANT ROLE
按如下方式关闭
psql
会话。labdb=>
\q
要开始创建 TLE 扩展,请参阅 示例:使用 SQL 创建可信语言扩展。