Tu pg_hba.conf
de hecho, debería requerir una contraseña para las conexiones de socket de Unix, pero aún hay formas de evitarlo que debe verificar:
-
un
.pgpass
archivo en el directorio de inicio de postgres que contiene la contraseña (verifique también el PGPASSFILE variable de entorno para una ruta no estándar). -
la PGPASSWORD se podría configurar la variable de entorno.
Y también existe la posibilidad de que esté editando el archivo pg_hba.conf incorrecto. Cuando se conecta como postgres, se puede obtener la ruta correcta para verificar con SHOW hba_file
Comando SQL.
Además, es posible que desee comprobar el archivo de registro, /var/log/postgresql/postgresql-9.1-main.log
para confirmar que los archivos de configuración se vuelven a cargar cuando lo solicite, y busque cualquier mensaje sospechoso durante la autenticación.
En cuanto a la razón por la cual las conexiones sin contraseña con el usuario de postgres son comunes, el debian PG-9.1 pg_hba.conf
tiene este comentario sobre no permitirlos:
# 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
Dado que Debian y Ubuntu usan los mismos paquetes de postgres, esto también se aplica a Ubuntu.