sql >> Database >  >> RDS >> PostgreSQL

Foutmelding:peer-authenticatie mislukt voor gebruiker postgres, bij het proberen om pgsql met rails te laten werken

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



  1. SQLite-query:krijg alle kolommen van een rij (android)?

  2. Een deel van een string vervangen in T-SQL

  3. INSERT INTO of UPDATE met twee voorwaarden

  4. Waarschuwing:mysql_result() verwacht dat parameter 1 resource is, boolean gegeven