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