sql >> Databasteknik >  >> RDS >> PostgreSQL

Får fel:Peer-autentisering misslyckades för användare postgres, när man försöker få pgsql att fungera med rails

Problemet är fortfarande din pg_hba.conf fil*.

Denna rad:

local   all             postgres                                peer

Bör vara:

local   all             postgres                                md5

* Platsen för den här filen är inte särskilt konsekvent. Kommandot locate pg_hba.conf borde hjälpa; här är några exempel:/etc/postgresql/*/main/pg_hba.conf och /var/lib/pgsql/data/pg_hba.conf .

Efter att ha ändrat den här filen, glöm inte att starta om din PostgreSQL-server. Om du använder Linux skulle det vara sudo service postgresql restart .

Det här är korta beskrivningar av båda alternativen enligt de officiella PostgreSQL-dokumenten om autentiseringsmetoder.

Peer-autentisering

Peer-autentiseringsmetoden fungerar genom att hämta användarnamnet för klientens operativsystem från kärnan och använda det som det tillåtna databasens användarnamn (med valfri användarnamnsmappning). Denna metod stöds endast på lokala anslutningar.

Lösenordsautentisering

De lösenordsbaserade autentiseringsmetoderna är md5 och lösenord. Dessa metoder fungerar på liknande sätt förutom det sätt som lösenordet skickas över anslutningen, nämligen MD5-hashat respektive klartext.

Om du överhuvudtaget är orolig för "sniffning"-attacker med lösenord är md5 att föredra. Vanligt lösenord bör alltid undvikas om möjligt. md5 kan dock inte användas med funktionen db_user_namespace. Om anslutningen är skyddad av SSL-kryptering kan lösenord användas på ett säkert sätt (även om SSL-certifikatautentisering kan vara ett bättre val om man är beroende av att använda SSL).

Exempel på plats för pg_hba.conf :
/etc/postgresql/9.1/main/pg_hba.conf



  1. PostgreSQL-fråga för att returnera resultat som en kommaseparerad lista

  2. Mätning av frågeprestanda:Exekveringsplan för frågekostnad kontra tid

  3. SYSUTCDATETIME() vs GETUTCDATE() i SQL Server:Vad är skillnaden?

  4. Hur kan jag lista alla främmande nycklar som refererar till en given tabell i SQL Server?