GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Postgres-Fehlermeldung:FATAL:Ident-Authentifizierung für Benutzer fehlgeschlagen ...

Lösung 1:

Dies bedeutet, dass Postgres versucht, einen Benutzer mithilfe des Ident-Protokolls zu authentifizieren, dies jedoch nicht kann. Ident auth funktioniert so:

  • Sie haben die Datenbankrolle „foo“ auf der Datenbank „db“
  • Dein pg_hba.conf Datei (in /etc/postgres-something/main ) definiert 'Ident' als Protokoll für die Verbindung zur Datenbank db für Benutzer, die sich von bestimmten Hosts aus verbinden
  • Der Unix-Benutzername, der die Verbindung herstellt, ist 'foo'
  • Ein Ident-Server, der auf dem Computer läuft, von dem aus sich der Benutzer verbindet, bestätigt, dass sein Benutzername wirklich „foo“ ist

Mögliche Ursachen und Lösungen:

  1. Es gibt keinen Ident-Server auf dem Computer ausgeführt wird, von dem aus Sie versuchen, eine Verbindung herzustellen. Testen Sie dies, indem Sie versuchen, sich auf Port 113 zu verbinden. Wenn dies fehlschlägt, installieren Sie einen Ident-Server (z. B. sudo apt-get install oidentd ).
  2. Es gibt einen Ident-Server, aber keine Datenbankrolle dem Namen entsprechen, mit dem Sie sich verbinden möchten ('foo' im obigen Beispiel). Erstellen Sie es also, indem Sie sich irgendwie mit Superuser-Rechten mit der Datenbank verbinden und CREATE ROLE foo ausführen . Alternativ fügen Sie einen Eintrag zu /etc/postgresql/.../main/pg_ident.conf hinzu (oder /var/lib/pgsql/12/data oder wo auch immer).

  3. Möglicherweise stimmt der Shell-Benutzername nicht überein die Datenbankrolle. Sie können dies möglicherweise testen, indem Sie sich bei bestehender Verbindung mit dem Ident-Server verbinden und die richtigen Portnummern übergeben.

  4. Vielleicht möchten Sie sich tatsächlich mit einem Passwort verbinden , nicht Ident. Bearbeiten Sie pg_hba.conf entsprechend archivieren. Ändern Sie beispielsweise:

    host all all 127.0.0.1/32 ident
    

    zu

    host all all 127.0.0.1/32 md5
    

Lösung 2:

Ich bin mir über die Ursachen nicht sicher, aber das hat es für mich behoben:

in pg_hba.conf

ändern Sie zu diesem:

hosten alle alle 127.0.0.1/32 md5

Genauer Fehler:Caused by: org.postgresql.util.PSQLException: FATAL: Ident authentication failed for user "postgres"

Lösung 3:

Fügen Sie unter CentOS die folgende Zeile zu /var/lib/pgsql/9.3/data/pg_hba.conf hinzu :

host all all 127.0.0.1/32 trust

Und kommentieren Sie die anderen Einträge aus.

Diese Einstellung ist natürlich nicht sicher, aber wenn Sie nur auf einer Entwicklungs-VM wie mir herumspielen, ist es wahrscheinlich in Ordnung ...


Linux
  1. Fehler:md5-Validierung für PyYAML-3.11.zip fehlgeschlagen Mögliches Download-Problem? [Lösung]

  2. OpenStack-VM-Startfehler – Letzte Ausnahme:Bindung für Port fehlgeschlagen [Gelöst]

  3. PostgreSQL-Datenbankserver konnte nicht gestartet werden – Nicht registrierter Authentifizierungsagent für Unix-Prozess [Gelöst]

  4. OpenCA-Fehler addMessage für Log-Slot-XML fehlgeschlagen. Verzeichnis kann nicht erstellt werden [Gelöst]

  5. Fehler beim Herunterladen von Metadaten für Repo „AppStream“ [CentOS]

So lösen Sie den MySQL-Fehler:Zugriff für Benutzer verweigert [email protected]

Deaktivieren Sie die SSH-Passwortauthentifizierung für bestimmte Benutzer oder Gruppen

Ändern Sie die Authentifizierungsmethode für den MySQL-Root-Benutzer in Ubuntu

Fehlerbehebung:MySQL/MariaDB-Fehler Nr. 1044 und Nr. 1045 Zugriff für Benutzer verweigert

Fix – Fehler:Fehler beim Herunterladen von Metadaten für Repo-Appstream – CentOS 8

Wie behebt man den SSH-Fehler „Zu viele Authentifizierungsfehler für Root-Benutzer“?