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

Ricezione di errore:l'autenticazione peer non è riuscita per l'utente postgres, quando si tenta di far funzionare pgsql con rails

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