PostgreSQL
 sql >> Base de Dados >  >> RDS >> PostgreSQL

PostgreSQL:FATAL - Falha na autenticação de peer para usuário (PG::ConnectionBad)


"Autenticação de peer" significa que está usando um soquete unix e espera que o usuário unix conectado tenha o mesmo nome de usuário unix que o nome de usuário postgresql.

Como seu nome de usuário local do unix é funkdified e você está tentando se conectar como usuário goodsounds em um soquete de domínio unix (local ) onde seu pg_hba.conf especifica peer autenticação, Pg rejeita corretamente sua tentativa de conexão.

Este é o comportamento padrão para muitas instalações ao usar soquetes unix.

Você pode:
  • Conecte-se via TCP/IP especificando um nome de host nas configurações de conexão do banco de dados;
  • editar pg_hba.conf para usar md5 autenticação de senha em vez de peer autenticação para soquetes unix (local tipo de conexão) para que Pg aceite autenticação de senha; ou
  • Conecte-se com um nome de usuário do PostgreSQL igual ao seu nome de usuário unix e crie o usuário no PostgreSQL, caso ainda não exista.

Veja os documentos para pg_hba.conf e o restante do capítulo de autenticação do cliente da documentação.

Observe que as alterações em pg_hba.conf não tenham efeito imediatamente, você deve reiniciar ou pelo menos recarregar o PostgreSQL para que ele releia pg_hba.conf .

Ah, também, se você tiver várias versões do PostgreSQL instaladas, você pode ter uma libpq de uma versão e um servidor de outra. Neste caso, certifique-se de que a localização do soquete unix ao qual a libpq se conecta por padrão seja a mesma do unix_socket_directories do servidor ou substitua-o por (por exemplo) host=/tmp em sua cadeia de conexão.