PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

Keine Passwortabfrage für Postgresql-Superuser

Ihre pg_hba.conf sollte in der Tat ein Passwort für Unix-Socket-Verbindungen erfordern, aber es gibt immer noch Wege, die Sie überprüfen sollten:

  1. ein .pgpass Datei im Postgres-Home-Verzeichnis, die das Passwort enthält (überprüfen Sie auch die PGPASSFILE Umgebungsvariable für einen nicht standardmäßigen Pfad).

  2. das PGPASSWORT Umgebungsvariable gesetzt werden könnte.

Und es besteht auch die Möglichkeit, dass Sie die falsche pg_hba.conf-Datei bearbeiten. Wenn Sie als Postgres verbunden sind, kann der korrekte Pfad zur Überprüfung mit SHOW hba_file abgerufen werden SQL-Befehl.

Außerdem sollten Sie die Protokolldatei /var/log/postgresql/postgresql-9.1-main.log überprüfen um zu bestätigen, dass die Konfigurationsdateien neu geladen werden, wenn Sie danach fragen, und suchen Sie während der Authentifizierung nach verdächtigen Nachrichten.

Als Grund, warum passwortlose Verbindungen mit dem Postgres-Benutzer üblich sind, ist die debian PG-9.1 pg_hba.conf hat diesen Kommentar dazu, sie nicht zuzulassen:

# 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  

Da Debian und Ubuntu dieselben Postgres-Pakete verwenden, gilt dies auch für Ubuntu.