PostgreSQL 8.3: Einstellungen in pg_hba.conf ohne Wirkung

Hallo zusammen,

nachdem bei mir zuvor schon eine Version 8.1 bestens lief und die daneben bereits installierte Version 8.3 noch nicht genutzt wurde, wollte ich perfektionistisch sein und auf letztere umsteigen - hätte ich vielleicht lieber lassen sollen, ich weiß …

Ich habe also mit “apt-get purge …” alle vorherigen Versionen herunter geschmissen (nachdem ich mir die Einstellungsdateien der bis dahin laufenden 8.1 woanders gesichert hatte) und auch alle Rätsel gelöst, um Webmin wieder dazu zu veranlassen, mit der neuen Version Kontakt aufzunehmen.

Und dennoch kann ich über meinen gewünschten Alltagsbenutzer (angelegt mittels “createuser meinbenutzer” und “createdb -O meinbenutzer meinbenutzer”) nicht mit psql verbinden, egal welche Einstellungen ich in pg_hba.conf vornehme. Selbst die Zeile “local all all trust” (selbstverständlich an erster Stelle eingegeben und mittels restart des Servers bestätigt) führt bei einem Anmeldeversuch mit anderen Benutzern als postgres nur zu diesem Fehler:

psql: FATAL: Passwort-Authentifizierung für Benutzer »meinbenutzer« fehlgeschlagen

Kann es vielleicht sein, dass von Version 8.1 zu 8.3 irgendeine weitere Einstellung erforderlich oder etwas an der Syntax in pg_hba.conf geändert geworden ist?

Danke und schöne Grüße,
Frank

Änderst du die richtige pg_hba.conf?
Hast du deine “trust” Zeile vor oder hinter den anderen Zeilen eingefügt?

Generell: es wird nach einem Passwort gefragt. Das bedeutet, dass die Datenbank deine “trust” Zeile nicht sieht, sondern vorher irgendeine andere Zeile findet, die zur Passwortübermittlung auffordert.




Hinweis in eigener Sache:
Solche Themen werden in der Veranstaltung in meiner Signatur behandelt :wink:

Um das zu prüfen, könnte der Fragesteller sich ja mit der DB verbinden (psql, als postgres-User oder so) und nachschauen, welche pg_hba denn genutzt wird:

test=*# show hba_file;
               hba_file
--------------------------------------
 /etc/postgresql/8.3/main/pg_hba.conf

Andreas

Wie gesagt, ich habe zuvor extra alle anderen Versionen inkl. Einstellungsdateien mit “apt-get purge …” runtergeschmissen. Und der unten von akretschmer empfohlene Weg - vielen Dank dafür! - hat auch ergeben, dass die richtige pg_hba.conf genutzt wird.

Auch das schrieb ich oben schon: Die Zeile steht vor allen anderen.

… weswegen ja auch ich inzwischen vermute, dass die Datei GAR NICHT ausgewertet wird. Vielleicht stimmen die Dateirechte nicht? Der owner sollte doch aber postgres sein, oder?

Der Owner ist egal, Hauptsache PostgreSQL kann die Datei lesen.

Schreib doch mal bitte folgenden Eintrag als erstes hinein:

host all all 0/0 reject
local all all       reject

Und danach die DB neu laden.

Aha, da kommt tatsächlich, wenn ich mit postgres verbinde:

psql: FATAL: kein pg_hba.conf-Eintrag für Host »[local]«, Benutzer »postgres«, Datenbank »postgres«, SSL aus

… also wird die Datei doch ausgewertet?! Ich werd einfach nicht schlau draus …

Edit: Nun habe ich die trust-Zeile noch einmal hineingeschrieben, und siehe da - plötzlich klappt’s! Ich kann es jetzt nicht mehr nachvollziehen, aber es könnte evtl. sein, dass ich zuvor immer versucht hatte, die DB (durch Rückgriff auf die Befehls-History) mit “start” statt mit “restart” neu zu laden. Da keine Fehlermeldung kam, fiel mir das wohl nicht auf …

Vielen Dank nochmal Euch beiden!!

Wie wäre es, wenn du alle Einträge ohne Kommentar mal hier postest?
Vielleicht IP-Adressen und ähnliches anonymisieren, wenn der Server öffentlich erreichbar ist.