> For the complete documentation index, see [llms.txt](https://wiki.datadike.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://wiki.datadike.com/product-docs/integracoes/databases/postgresql.md).

# PostgreSQL

### Criar Ativo PostgreSQL no PAM

#### Passo 1: Acessar Gerenciamento de Ativos

1. Navegue até **Console → Asset List**.
2. Na árvore de ativos, selecione ou crie um nó (ex: *Bancos de Dados → PostgreSQL*).

#### Passo 2: Criar o Ativo

1. Clique em **"+ Create"**.
2. Na janela de seleção de plataforma:
   * Tipo: **Database**
   * Plataforma: **PostgreSQL**
3. Preencha os campos:

| Campo        | Valor                                 | Observação               |
| ------------ | ------------------------------------- | ------------------------ |
| **Name**     | Ex: `PgSQL-Producao-App`              | Nome identificador único |
| **Address**  | IP ou hostname do servidor PostgreSQL | Ex: `10.0.2.40`          |
| **Port**     | `5432`                                | Porta padrão PostgreSQL  |
| **Database** | Nome do banco de dados                | Ex: `app_production`     |
| **Nodes**    | Selecionar o nó na árvore             | —                        |

#### Passo 3: Adicionar Conta (Credencial)

1. Na aba **"Accounts"** do ativo, clique em **"+ Create"**.
2. Preencha:
   * **Name:** Ex: `svc-readonly`
   * **Username:** `PAM_svc`
   * **Password:** A senha configurada no PostgreSQL
3. Salve.

#### Passo 4: Criar Autorização

1. Navegue até **Console → Permissions → Asset Permissions**.
2. Clique em **"+ Create"**.
3. Configure:
   * **Users/User Groups:** Selecione quem terá acesso.
   * **Assets:** Selecione o ativo PostgreSQL criado.
   * **Accounts:** Selecione a conta (ou *@ALL*).
4. Salve.

#### Passo 5: Testar Conectividade

1. No ativo PostgreSQL, clique no ícone de **Teste**.
2. Resultado esperado: ✅ **Sucesso**.
3. Se falhar, verificar: firewall, credenciais, `pg_hba.conf` e `listen_addresses`.Métodos de Conexão com PostgreSQL

   #### A. Web GUI (Editor SQL no navegador)

   1. Acesse **Workbench** (menu lateral).
   2. Localize o ativo PostgreSQL na lista.
   3. Clique → selecione conta → editor SQL abre no navegador.
   4. Funcionalidades: executar queries, salvar favoritas, exportar CSV, ver histórico.

   #### B. DB Client (DBeaver via conector de banco de dados)

   1. Acesse **Workbench → Database** → selecione o ativo PostgreSQL.
   2. Método: **DB Client**.
   3. DBeaver abre automaticamente conectado via proxy conector de banco de dados.

   #### C. DB Connection Guide

   1. Selecione método **"DB Guide"**.
   2. O sistema mostra:
      * Host: `<IP_do_conector_DB>`
      * Port: porta alocada
      * Username / Password (temporários via proxy)
      * Database name
      * Linha de comando: `psql -h <host> -p <port> -U <user> -d <database>`
   3. Use com pgAdmin, DataGrip, DBeaver, ou qualquer cliente PostgreSQL.

   #### D. RemoteApp (Navicat / DBeaver publicado)

   1. Pré-requisito: Navicat ou DBeaver configurado como RemoteApp no PAM.
   2. Selecione método **"RemoteApp"**.
   3. A ferramenta abre em sessão remota já conectada ao PostgreSQL.

   ### Troubleshooting PostgreSQL

   | Problema                              | Causa Provável                           | Solução                                                                    |
   | ------------------------------------- | ---------------------------------------- | -------------------------------------------------------------------------- |
   | Erro "no pg\_hba.conf entry"          | IP do PAM não autorizado no pg\_hba.conf | Adicionar entrada `host all PAM_svc <IP>/32 md5`                           |
   | Erro "connection refused"             | PostgreSQL não aceita conexões remotas   | Verificar `listen_addresses = '*'` em postgresql.conf                      |
   | Erro "password authentication failed" | Credenciais incorretas                   | Verificar senha do usuário no PostgreSQL                                   |
   | Timeout na conexão                    | Firewall bloqueando porta 5432           | Liberar porta 5432 entre PAM e PostgreSQL                                  |
   | Teste OK mas usuário não vê o ativo   | Falta autorização (Asset Permission)     | Criar autorização vinculando usuário + ativo + conta                       |
   | Conexão via Domain/Gateway falha      | Gateway sem acesso ao PostgreSQL         | Liberar porta 5432 também no host do Gateway                               |
   | SSL required error                    | PostgreSQL exige SSL                     | Configurar `sslmode` no conector de banco de dados ou ajustar pg\_hba.conf |
