2012-09-19 5 views
5

Ich versuche, neue Server in pgadmin3 mit folgenden Einstellungen zu registrieren:pgadmin3: FATAL: Ident-Authentifizierung für den Benutzer "postgres" failed

Name: postgres 
Host: localhost 
Username: postgres 
Password: <password which works for psql> 
Service: empty or postgres 

Aber es zeigt Fehler:

FATAL: Ident authentification failed for user "postgres" 

I‘ habe den postgresql-Dienst neu gestartet, aber ohne Erfolg.

Inhalt von /var/lib/pgsql/data/pg_hba.conf:

# TYPE DATABASE USER  CIDR-ADDRESS   METHOD 

# "local" is for Unix domain socket connections only 
local all   all        trust 
# IPv4 local connections: 
host all   all   127.0.0.1/32   trust 
# IPv6 local connections: 
host all   all   ::1/128    ident 

EDIT: Extras -> Serverkonfiguration -> pg_hba.conf wird abgeblendet.

Antwort

4

Es sieht so aus, als ob PgAdmin-III wahrscheinlich über IPv6 standardmäßig verbindet, also verwendet es die Zeile ident, die der IPv6-Adresse für localhost, ::1/128, entspricht.

Wenn Sie Passwort-Authentifizierung verwenden möchten, möchten Sie wahrscheinlich:

# IPv4 local connections: 
host all   all   127.0.0.1/32   md5 
# IPv6 local connections: 
host all   all   ::1/128    md5 

Ich bin nicht sicher, warum Sie die Unix-Domain-Socket-Linie trust eingestellt haben, aber das ist wahrscheinlich in Ordnung, wenn es nur eine Entwicklungsmaschine ist , also lass es unverändert. Es ist wirklich viel sicherer, es als ident (wenn Sie möchten, dass der Unix-Benutzer mit dem Pg-Benutzer identisch sein muss) oder md5 (für Kennwort-Authentifizierung auf lokalen Unix-Sockets) obwohl.

Sie müssen pg_hba.conf direkt in einem Texteditor bearbeiten, wenn PgAdmin-III keine Berechtigung zum Bearbeiten hat. Sie könnten PgAdmin-III als Benutzer postgres über sudo ausführen, aber es ist viel sicherer (und wahrscheinlich einfacher), einfach nano oder einen ähnlichen Befehlszeilen-Texteditor zu verwenden, um pg_hba.conf zu ändern.

Das Passwort funktioniert für psql, weil psql, sofern nicht anders angegeben, über einen Unix-Domain-Socket verbinden, und Sie haben dies auf trust festgelegt. Sie werden wahrscheinlich Passwort psqlpsql geben und es wird immer noch funktionieren, weil es nie aufgefordert wird, das Passwort tatsächlich zu geben, es wird nur automatisch vertraut.

2

Ja diese Art von Fehler wird von jedem Neuling Benutzer zu pgadmin gesehen. Ich habe diese Lösung gefunden und es hat für mich funktioniert.

sudo -u postgres psql 

Dies wird nach Ihrem Systempasswort fragen und dann erhalten Sie die Postgres-Eingabeaufforderung.

und dann in psql geben Sie unten Befehl, um das Passwort zu ändern.

\password 

Geben Sie nun das neue Passwort ein und geben Sie es erneut ein.

0

PostGreSQL Konto Debugging Step (Linux-spezifisch):

  1. Kontrollieren Sie, ob es tatsächlich installiert (und nicht nur den Client, der Server auch).
  2. Stellen Sie sicher, dass es ausgeführt wird.
  3. Stellen Sie sicher wissen, wo dies ist - in der Regel in /var/lib/pgsql/data - jedoch könnte dies überall sein -/var/lib/pgsql/unabhängige Instanz. Überprüfen Sie Ihre Postgres-Prozess, um zu sehen, welches Verzeichnis (-D-Argument) dies ist.
  4. Ändern Sie die pg_hba.conf Datei in das Verzeichnis aus dem letzten Schritt. Ich habe keine Ahnung, warum dieser Schritt nicht in der Postgres-Dokumentation ist.
  5. Die spezifische Konfiguration wurde z.B. Jay und Craig Ringer's Antwort. Stellen Sie sicher, dass IPV4 und IPV6 konfiguriert sind.
  6. Starten Sie den Server neu.
  7. Testen Sie, ob Ihre Konfiguration funktioniert hat. Wiederholen Sie die Schritte 5 bis 7, bis Sie sich erfolgreich anmelden können.
  8. Wichtig Nicht aufhören! Jetzt sollten Sie eine sicherere Passwort-Option konfigurieren - postgres kann für eine schnelle lokale Einrichtung in Ordnung sein, aber Sie möchten einen sichereren, konfigurierbaren Authentifizierungsmechanismus wie LDAP, Kerberos oder GSSAPI verwenden. Darüber hinaus möchten Sie sicherstellen, dass SSL aktiviert ist.
Verwandte Themen