PostgreSQL
 sql >> Database >  >> RDS >> PostgreSQL

Nessuna richiesta di password per il superutente postgresql

Il tuo pg_hba.conf dovrebbe effettivamente richiedere una password per le connessioni socket unix, ma ci sono ancora modi per aggirarlo che dovresti verificare:

  1. un .pgpass nella home directory di postgres contenente la password (controlla anche il PGPASSFILE variabile di ambiente per un percorso non standard).

  2. il PGPASSWORD è possibile impostare la variabile di ambiente.

E c'è anche la possibilità che tu stia modificando il file pg_hba.conf sbagliato. Quando connesso come postgres, è possibile ottenere il percorso corretto per la verifica con il SHOW hba_file Comando SQL.

Inoltre, potresti voler controllare il file di registro, /var/log/postgresql/postgresql-9.1-main.log per confermare che i file di configurazione vengono ricaricati quando richiesto e cercare eventuali messaggi sospetti durante l'autenticazione.

Per quanto riguarda il motivo per cui le connessioni senza password con l'utente postgres sono comuni, il debian PG-9.1 pg_hba.conf ha questo commento sul non consentirli:

# 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  

Poiché Debian e Ubuntu utilizzano gli stessi pacchetti postgres, questo vale anche per Ubuntu.