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:-
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).
-
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.