O
PostgreSQL possui arquivos de configuração que afetam questões diversas que vão de segurança da informação à performance do banco, e nada melhor do que a documentação oficial, que traz tudo detalhado.
Decidi por falar um pouco sobre a autenticação de clientes, mais especificamente do
pg_hba.conf, pois apesar de relativamente simples, trata-se de um assunto recorrente no momento no fórum e vejo que muitas pessoas ainda possuem algumas dúvidas, logo, vou tentar tratar dos pontos básicos para quem está começando nessa área e no final tentarei apresentar algo do tipo, aprenda por exemplos (mas ficaria muito contente se você lesse todo o conteúdo).
Então, para aqueles que querem detalhes ou aqueles que só querem dar uma olhada nos exemplos, aqui vai o artigo.
pg_hba.conf
O
pg_hba.conf tem seu nome derivado de "host-based authentication" e é quem controla a autenticação dos clientes junto ao servidor, ou seja, é capaz de barrar o acesso antes mesmo que uma conexão seja estabelecida.
Ele fica, na maioria dos casos, no próprio diretório de inicialização que é passado no initdb, mas ele pode ser alterado para qualquer outro diretório, para isso basta informar o caminho no arquivo postgresql.conf, na variável hba_file. Ex.:
hba_file = '/outro-diretório/pg_hba.conf'
Sua estrutura é bem simples, trata-se de uma lista na qual cada linha representa um tipo de configuração.
É importante ressaltar o funcionamento desta lista, assim como uma lista de convidados em uma festa, se for encontrada uma condição que libere a entrada, os demais registros são ignorados.
O que isso quer dizer? Oras, que você deve colocar primeiro as restrições mais severas e por último as permissões mais abertas. Isso mesmo, primeiro coloque na sua lista aqueles que você não quer na sua festa (reject) e ponha os VIP no final da lista.
Bom, isto posto, vamos falar do formato dos registros.