PostgreSQL
 sql >> Base de données >  >> RDS >> PostgreSQL

Aucune invite de mot de passe pour le superutilisateur postgresql

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 :

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

  2. 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.