

# Configurar o Trusted Language Extensions em sua instância de banco de dados do RDS para PostgreSQL
<a name="PostgreSQL_trusted_language_extension-setting-up"></a>

As etapas a seguir pressupõem que sua instância de banco de dados do RDS para PostgreSQL esteja associada a um grupo de parâmetros de banco de dados. Você pode usar o Console de gerenciamento da AWS ou a AWS CLI para essas etapas.

Ao configurar o Trusted Language Extensions em sua instância de banco de dados do RDS para PostgreSQL, você o instala em um banco de dados específico para uso pelos usuários do banco de dados que têm permissões nesse banco de dados. 

## Console
<a name="PostgreSQL_trusted_language_extension-setting-up.CON"></a>

**Como configurar o Trusted Language Extensions**

Execute as etapas a seguir usando uma conta que seja membro do grupo `rds_superuser` (função).

1. Faça login no Console de gerenciamento da AWS e abra o console do Amazon RDS em [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/).

1. No painel de navegação, selecione sua instância de banco de dados do RDS para PostgreSQL.

1. Abra a guia **Configuration** (Configuração) para sua Instância de banco de dados do RDS para PostgreSQL. Entre os detalhes da instância, encontre o link **Parameter group** (Grupo de parâmetros).

1. Clique no link para abrir os parâmetros personalizados associados ao seu Instância de banco de dados do RDS para PostgreSQL. 

1. No campo **Parameters** (Parâmetros), digite `shared_pre` para encontrar o parâmetro `shared_preload_libraries`.

1. Selecione **Edit parameters** (Editar parâmetros) para acessar os valores das propriedades.

1. Adicione `pg_tle` à lista no campo **Values** (Valores). Use uma vírgula para separar itens na lista de valores.  
![\[Imagem do parâmetro shared_preload_libraries com pg_tle adicionado.\]](http://docs.aws.amazon.com/pt_br/AmazonRDS/latest/UserGuide/images/apg_rpg_shared_preload_pg_tle.png)

1. Reinicie a instância de banco de dados do RDS para PostgreSQL para que a alteração no parâmetro `shared_preload_libraries` tenha efeito.

1. Quando a instância estiver disponível, verifique se `pg_tle` foi inicializado. Use `psql` para se conectar à instância de banco de dados do RDS para PostgreSQL e depois execute o comando a seguir.

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

1. Com a extensão `pg_tle` inicializada, agora você pode criar a extensão. 

   ```
   CREATE EXTENSION pg_tle;
   ```

   Para verificar se a extensão está instalada, você pode usar o metacomando `psql` a seguir.

   ```
   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. Conceda a função `pgtle_admin` ao nome de usuário principal que você criou para sua instância de banco de dados do RDS para PostgreSQL ao configurá-la. Se você aceitou o padrão, é `postgres`. 

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

   É possível verificar se a concessão ocorreu usando o metacomando `psql` conforme mostrado no exemplo a seguir. Somente as funções `pgtle_admin` e `postgres` são mostradas na saída. Para ter mais informações, consulte [Noções básicas sobre o perfil 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. Feche a sessão `psql` usando o metacomando `\q`.

   ```
   \q
   ```

Para começar a criar extensões TLE, consulte [Exemplo: Criar uma extensão de linguagem confiável usando 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>

Você pode evitar especificar o argumento `--region` ao usar comandos da CLI configurando sua AWS CLI com sua Região da AWS padrão. Para obter mais informações, consulte [Conceitos básicos de configuração da ](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-quickstart.html#cli-configure-quickstart-config) no *Guia do usuário do AWS Command Line Interface*.

**Como configurar o Trusted Language Extensions**

1. Utilize o comando [modify-db-parameter-group](https://docs.aws.amazon.com/cli/latest/reference/rds/modify-db-parameter-group.html) AWS CLI para adicionar `pg_tle` ao parâmetro `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. Utilize o comando [reboot-db-instance](https://docs.aws.amazon.com/cli/latest/reference/rds/reboot-db-instance) da AWS CLI para reinicializar a instância de banco de dados do RDS para PostgreSQL e inicialize a biblioteca `pg_tle`.

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

1. Quando a instância estiver disponível, verifique se a `pg_tle` foi inicializada. Use `psql` para se conectar à instância de banco de dados do RDS para PostgreSQL e, depois, execute o comando a seguir.

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

   Com `pg_tle` inicializado, agora você pode criar a extensão.

   ```
   CREATE EXTENSION pg_tle;
   ```

1. Conceda a função `pgtle_admin` ao nome de usuário principal que você criou para sua instância de banco de dados do RDS para PostgreSQL ao configurá-la. Se você aceitou o padrão, é `postgres`.

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

1. Feche a sessão `psql` da forma a seguir.

   ```
   labdb=> \q
   ```

Para começar a criar extensões TLE, consulte [Exemplo: Criar uma extensão de linguagem confiável usando SQL](PostgreSQL_trusted_language_extension-creating-TLE-extensions.md#PostgreSQL_trusted_language_extension-simple-example). 