Il problema è ancora il tuo pg_hba.conf
file*.
Questa riga:
local all postgres peer
Dovrebbe essere:
local all postgres md5
* La posizione di questo file non è molto coerente. Il comando locate pg_hba.conf
dovrebbe aiutare; ecco alcuni esempi:/etc/postgresql/*/main/pg_hba.conf
e /var/lib/pgsql/data/pg_hba.conf
.
Dopo aver alterato questo file, non dimenticare di riavviare il tuo server PostgreSQL. Se sei su Linux, sarebbe sudo service postgresql restart
.
Queste sono brevi descrizioni di entrambe le opzioni secondo i documenti ufficiali di PostgreSQL sui metodi di autenticazione.
Autenticazione peer
Il metodo di autenticazione peer funziona ottenendo il nome utente del sistema operativo del client dal kernel e utilizzandolo come nome utente del database consentito (con mappatura del nome utente opzionale). Questo metodo è supportato solo su connessioni locali.
Autenticazione password
I metodi di autenticazione basati su password sono md5 e password. Questi metodi funzionano in modo simile, fatta eccezione per il modo in cui la password viene inviata attraverso la connessione, vale a dire rispettivamente con hash MD5 e testo non crittografato.
Se sei preoccupato per gli attacchi di "sniffing" delle password, md5 è preferito. Se possibile, evitare sempre una password semplice. Tuttavia, md5 non può essere utilizzato con la funzione db_user_namespace. Se la connessione è protetta dalla crittografia SSL, è possibile utilizzare la password in modo sicuro (sebbene l'autenticazione del certificato SSL potrebbe essere una scelta migliore se si dipende dall'utilizzo di SSL).
Posizione di esempio per pg_hba.conf
:/etc/postgresql/9.1/main/pg_hba.conf