PostgreSQL-Fehler: password authentication failed for user

psql: error: connection to server at "localhost" (127.0.0.1), port 5432 failed: FATAL:  password authentication failed for user "app_user"

Sie haben den Server erreicht, pg_hba.conf wählte für diese Verbindung eine passwortbasierte Authentifizierungsmethode, und die Passwortprüfung schlug fehl. Die Client-Meldung ist bewusst vage; das Server-Log sagt meist mehr.

Was dieser Fehler bedeutet

Dem Client wird nur "authentication failed" mitgeteilt — das ist beabsichtigt, um Angreifern keine Informationen preiszugeben. Das Server-Log hingegen zeichnet den zugrunde liegenden Grund zum selben Zeitpunkt auf: die Rolle hat kein Passwort zugewiesen, das Passwort stimmt nicht überein, oder das gespeicherte Passwortformat ist mit der von pg_hba.conf geforderten Authentifizierungsmethode nicht verwendbar.

Letzteres verdient ein Wort: Passwörter werden gehasht gespeichert, mit dem Algorithmus, den password_encryption hatte, als das Passwort gesetzt wurde (scram-sha-256 auf modernen Versionen, md5 historisch). Das Ändern von password_encryption oder der pg_hba-Methode konvertiert bestehende gespeicherte Passwörter nicht — Mismatches zeigen sich als fehlgeschlagene Logins für Passwörter, die "definitiv richtig" sind.

Häufige Ursachen

So diagnostizieren Sie ihn

So beheben Sie ihn

🔍 Der benachbarte Fehlschlag: no pg_hba.conf entry for host — wenn überhaupt keine Regel die Verbindung trifft.