

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 在您的 RDS for PostgreSQL 資料庫執行個體中設定受信任語言延伸模組
<a name="PostgreSQL_trusted_language_extension-setting-up"></a>

下列步驟假設您的 RDS for PostgreSQL 資料庫執行個體與自訂資料庫參數群組相關聯。您可以針對這些步驟使用 AWS 管理主控台 或 AWS CLI。

當您在 RDS for PostgreSQL 資料庫執行個體中設定受信任語言延伸模組時，可以將其安裝在特定資料庫中，供具有該資料庫許可的資料庫使用者使用。

## 主控台
<a name="PostgreSQL_trusted_language_extension-setting-up.CON"></a>

**設定受信任語言延伸模組**

使用屬於 `rds_superuser` 群組 (角色) 成員的帳戶執行下列步驟。

1. 登入 AWS 管理主控台，開啟位於 [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/) 的 Amazon RDS 主控台。

1. 在導覽窗格中，選擇您的 RDS for PostgreSQL 資料庫執行個體。

1. 針對您的 開啟 **Configuration** (組態) 索引標籤。RDS for PostgreSQL 資料庫執行個體。在執行個體詳細資訊之間，尋找 **Parameter group** (參數群組) 連結。

1. 選擇連結以開啟與 相關聯的自訂參數。RDS for PostgreSQL 資料庫執行個體。

1. 在 **Parameters** (參數) 搜尋欄位中，輸入 `shared_pre` 以尋找 `shared_preload_libraries` 參數。

1. 選擇 **Edit parameters** (編輯參數) 以存取屬性值。

1. 在 **Values** (值) 欄位中，將 `pg_tle` 新增至清單。使用逗號區隔值清單中的項目。  
![\[已新增 pg_tle 之 shared_preload_libraries 參數的影像。\]](http://docs.aws.amazon.com/zh_tw/AmazonRDS/latest/UserGuide/images/apg_rpg_shared_preload_pg_tle.png)

1. 重新啟動 RDS for PostgreSQL 資料庫執行個體，以便您對 `shared_preload_libraries` 參數所做的變更生效。

1. 當執行個體可用時，請驗證 `pg_tle` 是否已初始化。使用 `psql` 連線至 RDS for PostgreSQL 資料庫執行個體，然後執行下列命令。

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

1. 在初始化 `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
   ```

1. 在設定時，將 `pgtle_admin` 角色授予您已針對 RDS for PostgreSQL 資料庫執行個體建立的主要使用者名稱。如果您接受預設值，其為 `postgres`。

   ```
   labdb=> GRANT pgtle_admin TO postgres;
   GRANT ROLE
   ```

   您可以使用 `psql` 中繼命令來驗證授予是否已發生，如下列範例所示。只有 `pgtle_admin` 和 `postgres` 角色會顯示在輸出中。如需詳細資訊，請參閱 [了解 rds\$1superuser 角色](Appendix.PostgreSQL.CommonDBATasks.Roles.rds_superuser.md)。

   ```
   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    |...
   ```

1. 使用 `\q` 中繼命令關閉 `psql` 工作階段。

   ```
   \q
   ```

若要開始建立 TLE 延伸模組，請參閱 [範例：使用 SQL 建立受信任語言延伸模組](PostgreSQL_trusted_language_extension-creating-TLE-extensions.md#PostgreSQL_trusted_language_extension-simple-example)。

## AWS CLI
<a name="PostgreSQL_trusted_language_extension-setting-up-CLI"></a>

您可以避免在使用 CLI 命令時指定 `--region` 引數，方法是使用您的預設 AWS 區域來設定您的 AWS CLI。如需詳細資訊，請參閱《AWS Command Line Interface 使用者指南》**中的[組態基礎概念](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-quickstart.html#cli-configure-quickstart-config)。

**設定受信任語言延伸模組**

1. 使用 [modify-db-parameter-group](https://docs.aws.amazon.com/cli/latest/reference/rds/modify-db-parameter-group.html) 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
   ```

1. 使用 [reboot-db-instance](https://docs.aws.amazon.com/cli/latest/reference/rds/reboot-db-instance) AWS CLI 命令重新啟動 RDS for PostgreSQL 資料庫執行個體，並初始化 `pg_tle` 程式庫。

   ```
   aws rds reboot-db-instance \
       --db-instance-identifier your-instance \
       --region aws-region
   ```

1. 當執行個體可用時，您可以驗證 `pg_tle` 是否已初始化。使用 `psql` 連線至 RDS for PostgreSQL 資料庫執行個體，然後執行下列命令。

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

   在初始化 `pg_tle` 之後，您現在可以建立延伸模組。

   ```
   CREATE EXTENSION pg_tle;
   ```

1. 在設定時，將 `pgtle_admin` 角色授予您已針對 RDS for PostgreSQL 資料庫執行個體建立的主要使用者名稱。如果您接受預設值，其為 `postgres`。

   ```
   GRANT pgtle_admin TO postgres;
   GRANT ROLE
   ```

1. 關閉 `psql` 工作階段，如下所示。

   ```
   labdb=> \q
   ```

若要開始建立 TLE 延伸模組，請參閱 [範例：使用 SQL 建立受信任語言延伸模組](PostgreSQL_trusted_language_extension-creating-TLE-extensions.md#PostgreSQL_trusted_language_extension-simple-example)。