PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

Fehler erhalten:Peer-Authentifizierung für Benutzer postgres fehlgeschlagen, wenn versucht wird, pgsql mit Rails zum Laufen zu bringen

Das Problem ist immer noch Ihre pg_hba.conf Datei*.

Diese Zeile:

local   all             postgres                                peer

Sollte lauten:

local   all             postgres                                md5

* Der Speicherort dieser Datei ist nicht sehr konsistent. Der Befehl locate pg_hba.conf sollte helfen; Hier sind einige Beispiele:/etc/postgresql/*/main/pg_hba.conf und /var/lib/pgsql/data/pg_hba.conf .

Vergessen Sie nach dem Ändern dieser Datei nicht, Ihren PostgreSQL-Server neu zu starten. Unter Linux wäre das sudo service postgresql restart .

Dies sind kurze Beschreibungen beider Optionen gemäß den offiziellen PostgreSQL-Dokumenten zu Authentifizierungsmethoden.

Peer-Authentifizierung

Bei der Peer-Authentifizierungsmethode wird der Betriebssystem-Benutzername des Clients vom Kernel abgerufen und als zulässiger Datenbank-Benutzername (mit optionaler Benutzernamenzuordnung) verwendet. Diese Methode wird nur bei lokalen Verbindungen unterstützt.

Passwortauthentifizierung

Die passwortbasierten Authentifizierungsmethoden sind md5 und password. Diese Methoden funktionieren ähnlich, mit Ausnahme der Art und Weise, wie das Passwort über die Verbindung gesendet wird, nämlich MD5-gehasht bzw. Klartext.

Wenn Sie sich überhaupt Sorgen über "Passwort-Sniffing"-Angriffe machen, dann ist md5 vorzuziehen. Ein einfaches Passwort sollte nach Möglichkeit immer vermieden werden. Allerdings kann md5 nicht mit der Funktion db_user_namespace verwendet werden. Wenn die Verbindung durch SSL-Verschlüsselung geschützt ist, kann das Passwort sicher verwendet werden (obwohl die SSL-Zertifikatsauthentifizierung möglicherweise die bessere Wahl ist, wenn man auf die Verwendung von SSL angewiesen ist).

Beispielspeicherort für pg_hba.conf :
/etc/postgresql/9.1/main/pg_hba.conf