Votre pg_hba.conf
devrait en effet exiger un mot de passe pour les connexions socket unix, mais il existe encore des moyens de le contourner que vous devriez vérifier :
-
un
.pgpass
fichier dans le répertoire personnel de postgres contenant le mot de passe (vérifiez également le PGPASSFILE variable d'environnement pour un chemin non standard). -
le PGPASSWORD la variable d'environnement peut être définie.
Et il est également possible que vous éditiez le mauvais fichier pg_hba.conf. Lorsque vous êtes connecté en tant que postgres, le chemin correct peut être obtenu pour vérification avec le SHOW hba_file
Commande SQL.
Vous pouvez également vérifier le fichier journal, /var/log/postgresql/postgresql-9.1-main.log
pour confirmer que les fichiers de configuration sont rechargés lorsque vous le demandez, et recherchez tout message suspect lors de l'authentification.
Quant à la raison pour laquelle les connexions sans mot de passe avec l'utilisateur postgres sont courantes, le debian PG-9.1 pg_hba.conf
a ce commentaire à propos de leur refus :
# 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
Étant donné que Debian et Ubuntu utilisent les mêmes packages postgres, cela s'applique également à Ubuntu.