在 RDS for PostgreSQL 数据库实例中设置可信语言扩展 - Amazon Relational Database Service
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

RDS for PostgreSQL 数据库实例中设置可信语言扩展

以下步骤假设您的 RDS for PostgreSQL 数据库实例与自定义数据库参数组相关联。您可以使用 Amazon Web Services Management Console或 Amazon CLI 来执行这些步骤。

当您在 RDS for PostgreSQL 数据库实例中设置可信语言扩展时,您可以将其安装在特定的数据库中,供对该数据库拥有权限的数据库用户使用。

设置可信语言扩展

使用作为 rds_superuser 组(角色)成员的账户执行以下步骤。

  1. 登录 Amazon Web Services Management Console 并通过以下网址打开 Amazon RDS 控制台:https://console.aws.amazon.com/rds/

  2. 在导航窗格中,选择 RDS for PostgreSQL 数据库实例

  3. 打开 的配置选项卡。RDS for PostgreSQL 数据库实例的 Configuration(配置)选项卡。在实例详细信息中,找到 Parameter group(参数组)链接。

  4. 选择此链接以打开与您的 RDS for PostgreSQL 数据库实例关联的自定义参数。

  5. Parameters(参数)搜索字段中,键入 shared_pre 以查找 shared_preload_libraries 参数。

  6. 选择 Edit parameters(编辑参数)以访问属性值。

  7. pg_tle 添加到 Values(值)字段的列表中。使用逗号分隔值列表中的项目。

    添加了 pg_tle 的 shared_preload_libraries 参数的图像。
  8. 重启 RDS for PostgreSQL 数据库实例,以使对 shared_preload_libraries 参数的更改生效。

  9. 当实例可用时,验证 pg_tle 是否已初始化。使用 psql 连接到 RDS for PostgreSQL 数据库实例,然后运行以下命令。

    SHOW shared_preload_libraries; shared_preload_libraries -------------------------- rdsutils,pg_tle (1 row)
  10. 初始化 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
  11. 在设置 RDS for PostgreSQL 数据库实例时,将 pgtle_admin 角色授予为其创建的主用户名。如果您接受了默认值,则它就是 postgres

    labdb=> GRANT pgtle_admin TO postgres; GRANT ROLE

    您可以使用 psql 元命令来验证授权是否已完成,如以下示例中所示。输出中仅显示 pgtle_adminpostgres 角色。有关更多信息,请参阅了解 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 |...
  12. 使用 \q 元命令关闭 psql 会话。

    \q

要开始创建 TLE 扩展,请参阅 示例:使用 SQL 创建可信语言扩展

在使用 CLI 命令时,您可以通过将您的 Amazon CLI 配置为使用默认 Amazon Web Services 区域来避免指定 --region 参数。有关更多信息,请参阅《Amazon Command Line Interface 用户指南》中的配置基础知识

设置可信语言扩展
  1. 使用 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" \ --region aws-region
  2. 使用 reboot-db-instance Amazon CLI 命令重启 RDS for PostgreSQL 数据库实例并初始化 pg_tle 库。

    aws rds reboot-db-instance \ --db-instance-identifier your-instance \ --region aws-region
  3. 当实例可用时,您可以验证 pg_tle 是否已初始化。使用 psql 连接到 RDS for PostgreSQL 数据库实例,然后运行以下命令。

    SHOW shared_preload_libraries; shared_preload_libraries -------------------------- rdsutils,pg_tle (1 row)

    初始化 pg_tle 后,您现在可以创建扩展了。

    CREATE EXTENSION pg_tle;
  4. 在设置 RDS for PostgreSQL 数据库实例时,将 pgtle_admin 角色授予为其创建的主用户名。如果您接受了默认值,则它就是 postgres

    GRANT pgtle_admin TO postgres; GRANT ROLE
  5. 按如下方式关闭 psql 会话。

    labdb=> \q

要开始创建 TLE 扩展,请参阅 示例:使用 SQL 创建可信语言扩展