Ident authentication failed - korrekte Konfiguration von PostgreSQL?

Hallihallo,

ich versuche nun schon seit Stunden herauszufinden, warum ich immer und immer wieder die folgende Fehlermeldung bekomme:

FATAL:  Ident authentication failed for user "rootdb"

Unter zu Hilfenahme folgender Schritte, habe ich einen neuen Nutzer angelegt und eine Datenbank für den Nutzer angelegt:

 1. su postgres
 2. createuser rootdb -P
 3. createdb -O rootdb -E UTF8 mynewdb
 4. psql
 5. postgres=# \l
        List of databases
   Name    |  Owner   | Encoding 
-----------+----------+----------
 mynewdb   | rootdb   | UTF8
 postgres  | postgres | UTF8
 template0 | postgres | UTF8
 template1 | postgres | UTF8
(4 rows)

Soweit so gut. Ein “\q” lässt mich den psql wieder verlassen und ich versuche mich mal als rootdb anzumelden:

psql -U rootdb
psql: FATAL:  Ident authentication failed for user "rootdb"
psql -U rootdb -d mynewdb
psql: FATAL:  Ident authentication failed for user "rootdb"

Fehlerlog meint das selbe:

 rootdb rootdb FATAL:  Ident authentication failed for user "rootdb"
 mynewdb rootdb FATAL:  Ident authentication failed for user "rootdb"

Durch Lesen vieler Forum-Einträge und Passagen in diversen meist veralteten Handbüchern, hab ich schon in der postgresql.conf und pg_hba.conf rumgeschmiert. Auch das bringt nix. Die pg_ident.conf hab ich gar nicht von der *.sample in eine richtige Datei umbenannt und auch in postgresql.conf ist sie nicht einkommentiert. Deshalb ist es ja so fatal: Warum möchte er eine “Ident Authentification”, wenn gar keine eingeschaltet ist? Denn in der pg_hba.conf steht nur was von md5 und nicht ident.

# TYPE  DATABASE    USER        CIDR-ADDRESS          METHOD

@remove-line-for-nolocal@# "local" is for Unix domain socket connections only
@remove-line-for-nolocal@local   all         all   md5                           # @authmethod@
# IPv4 local connections:
host    all             all         127.0.0.1/32    md5      #@authmethod@
host    all             all     192.168.0.0/24  md5             

# IPv6 local connections:
host    all         all         ::1/128        md5       #@authmethod@

Ich habs auch mit phpPgAdmin probiert. Der meint nur: “Anmeldung fehlgeschlagen”, wenn ich rootdb und sein Passwort verwenden will. Der PGAdmin3 ist da schon auskunfstsbereiter:

Access to database denied
The server doesn't grant access to the database: the server reports 
FATAL: no pg_hba.conf entry for host "192.168.29.1", user "rootdb", database "postgres", SSL off

Natürlich darf rootdb nicht auf die DB postgres zugreifen. Der soll ja auf mynewdb, aber er tuts net … auch wenn ich sie ihm per Konsole angebe.

Langsam aber sicher bin ich am Verzweifeln. Warum muss man soviele Einstellungen machen? Warum können die nicht per Default mitkommen? Und warum sind die nicht ordentlich dokumentiert? Das einstellen von “tcpip_socket” scheint ja in der Version 8.1.6, die ich benutze so ziemlich überholt zu sein. Was fehlt mir hier noch? Irgendwie muss das doch zu stande zu bekommen sein … :confused:

Ok, gut, da hat man wirklich vergessen was zu sagen. Wenn man schon eine Sample-Datei angibt, dann sollte sie auch korrekt sein:

#@authcomment@

# TYPE  DATABASE    USER        CIDR-ADDRESS          METHOD

#@remove-line-for-nolocal@# "local" is for Unix domain socket connections only
#@remove-line-for-nolocal@local   all         all   trust                           # @authmethod@
# IPv4 local connections:
local   all     all     trust
host    all             all         127.0.0.1/32    trust      #@authmethod@
host    all             all     192.168.0.0/24  md5

# IPv6 local connections:
host    all         all         ::1/128        trust       #@authmethod@

Einige “@remove …@” müssen auskommentiert werden, genauso wie “@autocomment@” und @authmethod@ sonst startet psql nicht mehr neu. Alles nachzulesen in den Errorlogs dann. Ein einfaches reload, läd hier dieses File nicht nach …

Der Login mit phpPgAdmin klappt jetzt. Ist ja auch von Lokal aus … Nur PgAdmin3 will noch immer mit rootdb auf postgres … :confused:

Noch ein Nachtrag: Die Sample-Datei in /usr/share/postgresql/ ist quatsch … Die richtige pg_hba.conf und die anderen liegen unter /var/lib/postgresql/data/ und die werden verwendet. Dort steht dann nämlich auch was von “ident sameuser”, was wohl die obere Fehlermeldung auslöst … Hier einfach trust und md5 rein … fertig!