在 RDS for PostgreSQL 数据库实例中设置可信语言扩展 - Amazon Relational Database Service

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

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

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

设置可信语言扩展

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

  1. 登录 AWS 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 命令时,您可以通过将您的 AWS CLI 配置为使用默认 AWS 区域来避免指定 --region 参数。有关更多信息,请参阅《AWS Command Line Interface 用户指南》中的配置基础知识

设置可信语言扩展
  1. 使用 modify-db-parameter-group AWS 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 AWS 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 创建可信语言扩展