1. Introdução ao pg_hba.conf
O arquivo pg_hba.conf (Host-Based Authentication) é o principal mecanismo de controle de acesso do PostgreSQL. Ele define quais hosts (máquinas), usuários, e bancos de dados podem se conectar, e qual método de autenticação será exigido. Importância: Sem uma configuração correta, o servidor pode ficar vulnerável a acessos não autorizados ou, no extremo oposto, impedir que conexões legítimas sejam estabelecidas.
2. Localização do ArquivoA localização pode variar de acordo com o sistema operacional e o método de instalação, mas geralmente pode ser encontrado nos seguintes caminhos: 3. Anatomia de uma Linha de ConfiguraçãoCada linha no pg_hba.conf é uma regra que segue a seguinte estrutura: | Tipo | Banco de Dados | Usuário | Endereço IP/Rede | Método de Autenticação | Opções | | host | all | postgres | 127.0.0.132scram-sha-256 | - | Ótimo. O público-alvo é a equipe de TI, abrangendo desde o DBA experiente (que buscará detalhes e melhores práticas) até o recém-formado (que precisará de clareza e exemplos práticos).
Isso significa que a documentação deve ser completa, cobrindo o básico (O quê, Porquê, Onde) e o avançado (Melhores Práticas, Opções de Autenticação, Solução de Problemas).
📝 Rascunho Inicial: Documentação do Arquivo pg_hba.conf
Título: Guia Completo: Configuração e Gerenciamento de Acesso via pg_hba.conf
1. Introdução: O Guardião do Acesso ao PostgreSQL
O arquivo pg_hba.conf (Host-Based Authentication) é o principal mecanismo de controle de acesso do PostgreSQL. Ele define quais hosts (máquinas), usuários, e bancos de dados podem se conectar, e qual método de autenticação será exigido.
Importância: Sem uma configuração correta, o servidor pode ficar vulnerável a acessos não autorizados ou, no extremo oposto, impedir que conexões legítimas sejam estabelecidas.
2. Localização do Arquivo
A localização pode variar de acordo com o sistema operacional e o método de instalação, mas geralmente pode ser encontrado nos seguintes caminhos:
3. Anatomia de uma Linha de
ConfiguraçãoConfiguração
Cada linha no pg_hba.conf é uma regra que segue a seguinte estrutura:
| Tipo | Banco de Dados | Usuário | Endereço IP/Rede | Método de Autenticação | Opções |
host | all | postgres | 127.0.0.1/32 | scram-sha-256 | - |
Atenção: As regras são lidas sequencialmente de cima para baixo. A primeira regra que corresponder aos parâmetros da conexão é a que será aplicada, e as regras subsequentes são ignoradas.
4. Detalhamento dos Campos
| Campo | Descrição | Valores Comuns | Exemplo de Uso |
| Tipo | Define o tipo de conexão. | local (socket UNIX), host (IPv4 ou IPv6), hostssl, hostnossl | host |
| Database | O nome do DB alvo. | all (todos), sameuser, samerole, nome específico | financeiro |
| User | O nome do usuário (role) alvo. | all, nome de usuário específico, @nomedarole (grupo) | app_backend |
| Address | O endereço da máquina cliente. | 127.0.0.1/32 (localhost), 0.0.0.0/0 (qualquer IP), 192.168.1.0/24 (sub-rede) | 10.10.0.0/16 |
| Method | O mecanismo de autenticação. | trust, reject, md5, scram-sha-256, cert, ldap, gssapi | scram-sha-256 |
5. Métodos de Autenticação Cruciais
| Método | Descrição | Nível de Segurança | Recomendação |
trust | Permite a conexão sem senha. | Baixíssimo | Apenas para local ou testes controlados. Nunca em produção via host. |
reject | Rejeita a conexão imediatamente. | Alto | Útil para bloquear IPs ou usuários específicos. |
md5 | Senha criptografada com MD5. | Médio (Legado) | Evitar. Usar scram-sha-256 se possível. |
scram-sha-256 | Autenticação de desafio-resposta. | Alto | Padrão de segurança atual e recomendado. |
peer | Autentica o usuário pelo nome do usuário do SO. | Alto (Local) | Apenas para conexões local. |