Das Problem liegt immer noch in Ihrer pg_hba.conf
-Datei.
Diese Zeile:
local all postgres peer
Sollte sein:
local all postgres md5
Nachdem Sie diese Datei geändert haben, vergessen Sie nicht, Ihren PostgreSQL-Server neu zu starten. Wenn Sie Linux verwenden, wäre das sudo systemctl restart postgresql
(auf älteren Systemen: sudo service postgresql restart
).
Auffinden von hba.conf
Beachten Sie, dass der Speicherort dieser Datei nicht sehr konsistent ist.
Sie können locate pg_hba.conf
verwenden oder PostgreSQL mit SHOW hba_file;
fragen, um den Dateispeicherort zu ermitteln.
Übliche Speicherorte sind /etc/postgresql/[version]/main/pg_hba.conf
und /var/lib/pgsql/data/pg_hba.conf
.
Dies sind kurze Beschreibungen der Optionen peer
vs md5
gemäß der offiziellen PostgreSQL-Dokumentation zu Authentifizierungsmethoden.
Peer-Authentifizierung
Die Peer-Authentifizierungsmethode funktioniert, indem der Benutzername des Client-Betriebssystems aus dem Kernel bezogen und als erlaubter Datenbankbenutzername verwendet wird (mit optionaler Benutzerzuordnung). Diese Methode wird nur bei lokalen Verbindungen unterstützt.
Passwort-Authentifizierung
Die passwortbasierten Authentifizierungsmethoden sind md5 und Passwort. Diese Methoden funktionieren ähnlich, bis auf die Art und Weise, wie das Passwort über die Verbindung übertragen wird, nämlich MD5-gehasht und Klartext Beide.
Wenn Sie sich überhaupt Sorgen um "Mitschneiden" von Passwörtern machen, dann ist md5 bevorzugt. Klartextpasswörter sollten immer vermieden werden, wenn möglich. Allerdings kann md5 nicht mit der Funktion db_user_namespace verwendet werden. Wenn die Verbindung durch SSL-Verschlüsselung geschützt ist, kann auch das Passwort sicher verwendet werden (obwohl die Authentifizierung über SSL-Zertifikate eine bessere Wahl sein könnte, wenn man auf die Verwendung von SSL angewiesen ist).