# Conexão SQL via Proxy do PAM

O DataDike PAM atua como **proxy transparente** para bancos de dados. Os clientes SQL (DBeaver, SSMS, Navicat, etc.) conectam ao PAM como se fosse o banco real, e o PAM encaminha a conexão ao banco de dados de destino, aplicando autenticação, controle de acesso e auditoria completa de todas as queries executadas.

### Bancos de Dados Suportados

| Banco de Dados         | Versão      | Porta | Autenticação           |
| ---------------------- | ----------- | ----- | ---------------------- |
| **MySQL/MariaDB**      | 5.7 - 8.0   | 3306  | Usuário/Senha, SSL     |
| **PostgreSQL**         | 9.6 - 15    | 5432  | Usuário/Senha, SSL     |
| **SQL Server (MSSQL)** | 2012 - 2022 | 1433  | Usuário/Senha, AD, SSL |
| **Oracle**             | 9i - 21c    | 1521  | Usuário/Senha, SSL     |
| **MongoDB**            | 3.6 - 6.0   | 27017 | Usuário/Senha, X509    |
| **Redis**              | 5.x - 7.x   | 6379  | Usuário/Senha, ACL     |

### Pré-Requisitos

* O ativo de banco de dados está cadastrado no PAM (tipo: Banco de Dados)
* A conta (credencial) do banco está cadastrada e associada ao ativo
* Existe uma autorização (regra de acesso) vinculando o usuário PAM ao ativo/conta
* Cliente SQL instalado (DBeaver, SSMS, Navicat, pgAdmin, mysql CLI, etc.)

### Método 1: Cliente Web SQL (Recomendado)

1. Acesse a interface web do DataDike PAM no navegador.
2. Navegue até **Meus Dispositivos** e localize o banco de dados desejado.
3. Clique no ativo de banco de dados para abrir a sessão.
4. Selecione a conta (credencial) autorizada.
5. O editor SQL web será aberto. Execute queries diretamente no navegador.

### Método 2: DB Client via Proxy do PAM

#### MySQL via DBeaver

| Parâmetro       | Valor                                                                  |
| --------------- | ---------------------------------------------------------------------- |
| **Server Host** | IP do DataDike PAM (ex: 10.0.0.50)                                     |
| **Port**        | 3306                                                                   |
| **Username**    | UsuarioPAM\@ContaDoBanco\@IPdoBanco (ex: joao\@dbadmin\@192.168.1.200) |
| **Password**    | Senha do DataDike PAM                                                  |

#### PostgreSQL via DBeaver / pgAdmin

| Parâmetro       | Valor                               |
| --------------- | ----------------------------------- |
| **Server Host** | IP do DataDike PAM                  |
| **Port**        | 5432                                |
| **Username**    | UsuarioPAM\@ContaDoBanco\@IPdoBanco |
| **Password**    | Senha do DataDike PAM               |

#### SQL Server via SSMS

| Parâmetro          | Valor                                               |
| ------------------ | --------------------------------------------------- |
| **Server Name**    | IP do DataDike PAM, porta 1433 (ex: 10.0.0.50,1433) |
| **Authentication** | SQL Server Authentication                           |
| **Login**          | UsuarioPAM\@ContaDoBanco\@IPdoBanco                 |
| **Password**       | Senha do DataDike PAM                               |

#### Via CLI (mysql, psql, sqlcmd)

```
# MySQL CLI
mysql -h 10.0.0.50 -P 3306 -u joao@dbadmin@192.168.1.200 -p

# PostgreSQL CLI
psql -h 10.0.0.50 -p 5432 -U joao@postgres@192.168.1.200 -d mydb

# SQL Server CLI
sqlcmd -S 10.0.0.50,1433 -U joao@sa@192.168.1.200 -P SenhaDoPAM
```

### Auditoria de Sessões SQL

Todas as sessões SQL que passam pelo proxy do PAM são automaticamente auditadas:

* **Todas as queries registradas** — cada comando SQL com timestamp, usuário e banco.
* **Filtros de comando SQL** — bloquear ou exigir aprovação para DROP, DELETE, TRUNCATE.
* **Exportar relatórios** — gerar relatórios para compliance e investigação.

### Troubleshooting

* **Conexão recusada:** Verifique se a porta está aberta no firewall e o PAM está ativo.
* **Autenticação falhou:** Confira o formato UsuarioPAM\@ContaDoBanco\@IPdoBanco. A senha é do PAM, não do banco.
* **Performance lenta:** Verifique latência de rede entre cliente → PAM → banco. Otimize queries (EXPLAIN).
