Hallo,
ich bin Neuling auf dem Gebiet der PostgreSQL (Version 8.3.4) Datenbank.
Ich habe diese nun unter debian (mit apt-get) installiert und kann mich auch via postgres und psql auf die Datenbank einloggen.
Dort habe ich nun das Problem, dass, egal wie ich eine Rolle (Benutzer) anlege, dieser sich nicht mit der Datenbank verbinden kann.
Probiert habe ich es indem ich als postgres folgendes eingegeben habe:
psql -U postgres template1
In der Datenbank dann:
CREATE ROLE dbuser LOGIN CREATEDB PASSWORD 'userpass' INHERIT;
Als Antwort erscheint: CREATE ROLE
mit \du kann ich nun beide Rollen sehen: postgres und dbuser
Will ich mich aber mit "psql -U dbuser template1 -W" anmelden, dann erscheint nach der Passworteingabe:
psql: FATAL: Ident-Authnetifizierung für Benutzer "dbuser" fehlgeschlagen
Das erscheint übrigens auch, wenn ich den Benutzer ohne Passwort anlege und das -W weg lasse.
Ich habe das pg-admin Buch durchblättert und das PostgreSQL Ge-PACKT von Peter Eisentraut. Keine brauchbaren Infos...
Wie lege ich nun einen Datenbankbenutzer an, der sich tatsächlich einloggen darf?
Übrigens sind psql und Server auf einer Maschine.
Vielen Dank schon mal für alle Infos.
DER Ruebenmaster
Ok, ich bin natürlich am wuhlen und habe entdeckt, dass in der pg_hba.conf der Passworteintrag auf md5 steht. Ich habe ihn auf trust geändert und siehe da... dbuser ist drin!
Ich fühle mich nun wie Boris Becker: "Bin ich schon drin?"
Bis zur nächsten lästigen Frage... DER Ruebenmaster
PG kennt verschiedene Arten der Benutzeridentifizierung. Dies wird in pg_hba.conf gesteuert.
Lese das Dir mal durch. Alles, was u tun must, ist, diese Datei Deinen Wünschen anzupassen.Code:13:25 < akretschmer> ??pg_hba 13:25 < rtfm_please> For information about pg_hba 13:25 < rtfm_please> see http://www.postgresql.org/docs/current/static/client-authentication.html
Hint: derzeit ist Ident-Auth eingestellt. Hier wird geprüft, ob der aktuelle Systemuser auch der ist, der sich an der DB anmelden will. Dies schlägt fehl.
Evtl. könntest Du das vermeiden mit psql -h localhost ... aber ob das geht, steht auch wieder in der pg_hba.conf.
Andreas
Andreas
--
https://www.xing.com/profile/Andreas_Kretschmer7ads Das hatte dir akretschmer gestern schon gesagt und siehe da sobald du das machst, funktioniert es ;-)
Hallo,
vielen Dank für den Tipp.
Aber ich werde leider von pg_hba.conf nach CREATE USER verwiesen, dort zu CREATE ROLE um dann einen Link nach ALTER ROLE zu folgen. Aber nirgendwo steht wie ich als Passwort Verschlüsselung md5 einrichten kann. "trust" ist nicht das Gelbe vom Ei für den Ernstfall.
Wie richte ich das Passwort ein, dass in der pg_hba.conf wieder md5 eingeben kann?
Vielen Dank für alle Infos... ;o)
Gruß
DER Ruebenmaster
P.S. Übrigens funktioniert das Anmelden meines dbuser nach einem Neustart des Datenbankservers nicht mehr! Jetzt stehe ich wieder am Anfang.
Ich habe die Handbücher gelesen. Das rtfm kann man sich sparen... Die Handbücher gehen vom fehlerfreien Idealfall aus.
Jemand einen sinnvollen Tipp zum Thema md5 in diesem Fall?
Geändert von Ruebenmaster (15.10.2008 um 15:31 Uhr)
Ganz ruhig. Wenn Du psql auf der lokalen Kiste nutzt, dann verbindet es sich lokal via Socket. Zumindest solange, wie man nicht extra -h localhost und vielleicht noch -p 5432 mitgibt, denn dann verbindet es sich via TCP/IP. Und für diese 2 Verbindungstypen gibt es auch unterschiedliche Einträge in der pg_hba.conf. Einmal local, und einmal host. Ich spekuliere einfach mal, daß Du das nicht beachtet hast.
Andreas
--
https://www.xing.com/profile/Andreas_Kretschmer7ads Das hatte dir akretschmer gestern schon gesagt und siehe da sobald du das machst, funktioniert es ;-)
Hallo Leute,
ich habe nun als letzte Chance die pg_hba.conf total geöffnet:
local all all trust
Kein Erfolg!
host all all 127.0.0.1/32 trust
Kein Erfolg!
Mein Benutzer dbuser kann sich nicht via psql anmelden. Immer wieder erscheint:
psql: FATAL: Ident-Authnetifizierung für Benutzer "dbuser" fehlgeschlagen
Ich habe nun mal probiert mit einem externen Rechner und pgAdminIII (WinXP) eine Verbindung herzustellen...
host all all 192.168.100.0/24 trust
(auch die postgres.conf habe ich mit '*' angepasst...)
Es funktioniert!!!
Kann mir jemand erklären was ich hier falsch mache?
Gruß
DER Ruebenmaster
--
https://www.xing.com/profile/Andreas_Kretschmer7ads Das hatte dir akretschmer gestern schon gesagt und siehe da sobald du das machst, funktioniert es ;-)
Hallo akretschmer,
ich hatte es mit -h localhost schon probiert, ging auch nicht. Dass die Reihenfolge beachtet werden muss, steht in meinen Büchern von Eisentraut nicht drin.(
Meine echte pg_hba.conf:
# Database administrative login by UNIX sockets
local all postgres ident sameuser
local all all trust
# TYPE DATABASE USER CIDR-ADDRESS METHOD
# "local" is for Unix domain socket connections only
local all all ident sameuser
# IPv4 local connections:
host all all 127.0.0.1/32 md5
host all all 172.16.77.0/24 md5
host all all 172.16.78.0/24 md5
host all all 172.16.78.0/24 trust
host all all 192.168.100.0/24 md5
# IPv6 local connections:
# host all all ::1/128 md5
Mal die Reihenfolge ausser acht lassend. Wie bringe ich ihn dazu nur verschlüsselte Passwörter (md5) zu verwalten? Das hab ich immer noch nicht verstanden...
Gruß
DER Ruebenmaster
--
https://www.xing.com/profile/Andreas_Kretschmer7ads Das hatte dir akretschmer gestern schon gesagt und siehe da sobald du das machst, funktioniert es ;-)
Hallo Andreas,
ich habe die Reihenfolge angepasst. Die Methode muss ich noch ändern, das muss ich mir aber erst noch erlesen...
Jedenfalls funktioniert nun alles, auch der Tablespace auf einer eigenen Partition.
Vielen Dank für geistigen Trank
...an Dich
Gruß
DER Ruebenmaster, der bestimmt bald wieder Fragen hat...
Links: Tobias Bauer - IT- und Funkdienstleistungen - Bilderrahmen-kaufen.de - Der Onlineshop für Bilderrahmen & Fotorahmen - Funkforum
Lesezeichen