PostgreSQL: entendendo e resolvendo o erro "peer authentication failed
Voltar para blog

PostgreSQL: entendendo e resolvendo o erro "peer authentication failed

07/06/2026 · 2 min · Desenvolvimento

PostgreSQL: Entendendo e Resolvendo o Erro "Peer authentication failed"#

Durante configuração de PostgreSQL em Linux, esse erro aparece com frequência em ambiente de produção e homologação:

psql -U domain_user -d app_database -W -c "\dt"

Retorno:

FATAL:  Peer authentication failed for user "domain_user"

A senha está correta, o usuário existe, mas o acesso falha. O problema quase sempre é política de autenticação aplicada na conexão errada, não credencial inválida.

2) Onde isso é definido: pg_hba.conf#

No Linux, em geral:

/etc/postgresql/{VERSION}/main/pg_hba.conf

Linha típica responsável pelo comportamento:

# TYPE  DATABASE        USER            METHOD
local   all             all             peer

Tradução operacional:

4) Estratégias de correção (com prós e contras)#

Opção 1 - executar como usuário Linux correspondente#

Se o modelo do ambiente for execução local controlada, a correção mais direta é alinhar usuário SO com usuário DB:

sudo -u domain_user psql -d app_database

Quando uso: scripts internos, automações locais, operação root->service account.

Opção 3 - migrar regra para scram-sha-256 (recomendado produção)#

Para aplicações fullstack e serviços que exigem senha forte localmente, a correção definitiva é ajustar o método no pg_hba.conf.

Exemplo:

local   all   domain_user   scram-sha-256

Aplicação:

  1. Editar arquivo:
sudo nano /etc/postgresql/{VERSION}/main/pg_hba.conf
  1. Reiniciar serviço:
sudo systemctl restart postgresql
  1. Testar login:
psql -U domain_user -d app_database -W -c "select current_user;"

Nota de segurança#

Evite md5 em ambiente novo. scram-sha-256 é padrão moderno e mais resistente contra vetores de captura/replay em comparação ao legado.

6) Comparativo técnico dos métodos#

MétodoUsa senha?Baseado no SO?Uso indicado
peerNãoSimadministração local via SSH e scripts internos controlados
trustNãoNãolaboratório temporário (nunca produção)
scram-sha-256SimNãoaplicações, produção moderna, compliance

Considerações práticas#

Peer authentication failed não é bug, é proteção funcionando.

O que resolve de forma definitiva é entender a hierarquia do pg_hba.conf, alinhar o método de autenticação ao tipo de conexão e aplicar padrão moderno (scram-sha-256) quando a aplicação depende de senha.

Esse é o ponto que separa "fazer funcionar" de operar PostgreSQL com previsibilidade e segurança em produção.

Este artigo foi útil?

Deixe uma reação rápida para apoiar o conteúdo:

CC BY-NC

Este post está licenciado sob CC BY-NC.

Comentários

Participe da discussão abaixo.

0 comentários