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

Nenhum prompt de senha para o superusuário postgresql


Seu pg_hba.conf deve realmente exigir uma senha para conexões de soquete unix, mas ainda há maneiras de contornar isso que você deve verificar:

  1. a .pgpass arquivo no diretório inicial do postgres contendo a senha (verifique também o PGPASSFILE variável de ambiente para um caminho não padrão).

  2. o PGPASSWORD variável de ambiente pode ser definida.

E também existe a possibilidade de você estar editando o arquivo pg_hba.conf errado. Quando conectado como postgres, o caminho correto pode ser obtido para verificação com o SHOW hba_file Comando SQL.

Além disso, você pode querer verificar o arquivo de log, /var/log/postgresql/postgresql-9.1-main.log para confirmação de que os arquivos de configuração são recarregados quando solicitado, e procure qualquer mensagem suspeita durante a autenticação.

Quanto à razão pela qual as conexões sem senha com o usuário postgres são comuns, o debian PG-9.1 pg_hba.conf tem este comentário sobre não permiti-los:
# DO NOT DISABLE!  
# If you change this first entry you will need to make sure that the  
# database superuser can access the database using some other method.  
# Noninteractive access to all databases is required during automatic  
# maintenance (custom daily cronjobs, replication, and similar tasks).  
#  
# Database administrative login by Unix domain socket  
local   all             postgres                                peer  

Como o Debian e o Ubuntu usam os mesmos pacotes postgres, isso também se aplica ao Ubuntu.