Het probleem is nog steeds uw pg_hba.conf
bestand*.
Deze regel:
local all postgres peer
Zou moeten zijn:
local all postgres md5
* De locatie van dit bestand is niet erg consistent. Het commando
locate pg_hba.conf
zou moeten helpen; hier zijn enkele voorbeelden:/etc/postgresql/*/main/pg_hba.conf
en/var/lib/pgsql/data/pg_hba.conf
.
Vergeet na het wijzigen van dit bestand niet uw PostgreSQL-server opnieuw op te starten. Als je Linux gebruikt, is dat sudo service postgresql restart
.
Dit zijn korte beschrijvingen van beide opties volgens de officiële PostgreSQL-documenten over authenticatiemethoden.
Peer-authenticatie
De peer-authenticatiemethode werkt door de gebruikersnaam van het besturingssysteem van de client uit de kernel te halen en deze te gebruiken als de toegestane database-gebruikersnaam (met optionele toewijzing van de gebruikersnaam). Deze methode wordt alleen ondersteund op lokale verbindingen.
Wachtwoordverificatie
De op wachtwoord gebaseerde authenticatiemethoden zijn md5 en wachtwoord. Deze methoden werken op dezelfde manier, behalve de manier waarop het wachtwoord over de verbinding wordt verzonden, namelijk respectievelijk MD5-hash en clear-text.
Als u zich zorgen maakt over het "snuiven" van wachtwoorden, heeft md5 de voorkeur. Een gewoon wachtwoord moet indien mogelijk altijd worden vermeden. Md5 kan echter niet worden gebruikt met de functie db_user_namespace. Als de verbinding wordt beschermd door SSL-codering, kan het wachtwoord veilig worden gebruikt (hoewel SSL-certificaatauthenticatie een betere keuze kan zijn als men afhankelijk is van het gebruik van SSL).
Voorbeeldlocatie voor pg_hba.conf
:/etc/postgresql/9.1/main/pg_hba.conf