• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

PostGreSQL Anmeldung

froemken

Member
Hallo zusammen,

eigentlich sollte es doch nicht so schwer sein, sich schlicht einfach als "Admin" an der PostGreSQL-Datenbank anzumelden.

Installiert ist PostGreSQL und dieses phpPgAdmin
In phpPgAdmin habe ich die Server-IP eingetragen und schon kam ich auf den Anmeldebildschirm. Aber weder mit root, postgres, postgresadmin oder sonst was kann ich mich anmelden.

Also bleibt noch der Weg über die Konsole
Nach lesen mehrer Manuals hab ich dann den Befehl createuser gefunden:

createuser root --> Geht nicht User root nicht in template1
createuser postgres -> Geht nicht, User root nicht in Template
Unter anderem Benutzer
createuser root --> Geht nicht, User stefan nicht in Template1

Andere Möglichkeit:
createuser -U postgres root --> Geht nicht, User postgres konnte nicht Authentifiziert werden

su postgres --> Falsches Passwort, obwohl der User laut den manuals gar kein Passwort hat.

Es kann doch nicht so schwer sein, sich an dieser Datenbank anzumelden?!?!?

Stefan
 

nbkr

Guru
phppgadmin verhindert in der Standardeinstellung die Anmeldung von "postgres", root, admin und noch einigen anderen. Anmelden an der Datenbank kannst sich erstmal nur der Linuxbenutzer postgres. Der hat meines Wissens auf alle Datenbanken ohne Passwort Zugriff sofern der Zugriff über die Shell erfolgt. Das ganze machst Du dann so

Code:
su
<root passwort>
su postgres

Dann bist Du in der Shell der Benutzer postgres. Damit kannst Du alle administrativen Aufgaben von PostgreSQL erledigen.

Der groben Zugriff auf die Datenbanken (also ob überhaupt oder nicht) legst Du über die pg_hba.conf fest. Feinere Einstellungen kannst Du dann über die Administrationsoberfläche machen.
 

whois

Ultimate Guru
Hi froemken

Du hast mir eine PN geschickt den Thread wieder aufzumachen.

Meine Frage sind deine Probleme gelöst oder noch nicht ?
 
OP
froemken

froemken

Member
Die Antwort hat mir auf jeden Fall schon mal weiter geholfen. Ich konnte mit createuser jetzt endlich einen user anlegen und dachte ich könnte mich mit diesem User jetzt auch an phpPgAdmin anmelden, aber da habe ich mich wohl geirrt.
Ich habe keine Ahnung auf welche Userdatenbank dieses interessante Tool zugreift. Ständig heißt es "Anmeldung fehlgeschlagen".
1. Fehler bei Anmeldung: Eine Art PG-Ad-On fehlt wohl. Nachinstalliert und wurde nie wieder angemeckert
2. In der PHP.INI die beiden Zeilen laut doku addiert bzw. vervollständigt. Da musste sowas wie USERPASS und noch was rein. Auch habe ich es mit /usr/bin so wie mit /usr/bin/pg_dump probiert, obwohl ich glaube, dies überhaupt nicht zu benötigen.
3. Ich komme von jedem PC im Netzwerk auf den Anmeldebildschirm
4. Ich habe vorübergehend auch mal diesen Sicherheitsfaktor bzgl. der leeren Passwörter in der config von pgAdmin auf false gestellt. Keine Änderung bei der Anmeldung
5. Ich habe auf Grund meiner geringen Kenntnisse dem kompletten Verzeichnis für phpPgAdmin volle Schreibzugriffe für jeden gegeben (Vorübergehend)
6. Installiert ist Apache2 mit PHP5. Sollte auch kein Problem sein, oder?
7. User habe ich mit createuser -a -d -P stefan angelegt. (Kann auch ein kleines "p" gewesen sein. Ich habe mehrfach den User Stefan angelegt in verschiedenen Konstellationen und bei Nichtfunktionieren mit dropuser stefan wieder gelöscht. Auch habe ich versucht User wie postgres oder root anzulegen. Kein Erfolg.

Das kann doch nicht so schwer sein ein Web-Front-End einzurichten. phpMyAdmin war ne Sache von 10-15 Minuten, dann war ich fertig. Hier hänge ich jetzt schon mehrere Stunden dran.

Hat da noch jemand einen Tipp.

PS: @whois
Wollte mich zumindest für die Hilfe bedanken, auch wenn du es schon für mich übernommen hast ;-)

Stefan
 

nbkr

Guru
Nachdem Du den Benutzer stefan angelegt hast, hast Du dann auch die pg_hba.conf kontrolliert ob und auf welche DBs der Benutzer zugreifen darf?
 
OP
froemken

froemken

Member
Ich denke eine unveränderte pg_hba.conf ist schon OK, oder?

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

Für mich heißt das :
Alle Rechner aus den definierten Netzwerken dürfen sich mit allen vorhandenen Usern an jeder beliebigen Datenbank anmelden.

Ich hab jetzt gerade noch den Eintrag:
hosts all all 192.168.0.0/24 ident sameuser
eingetragen. Die Anmeldung klappt aber immer noch nicht.

Stefan

PS: Für alle anderen, die diesen Thread verfolgen sollten. Die pg_hba.conf liegt nicht wie üblich im etc-Verzeichnis, sondern liegt nicht nachvollziehbar (für mich) in /var/lib/pgsql/data Ein "find -name pg_hba.conf" wirkt manchmal Wunder ;-)
 

nbkr

Guru
ident sameuser funktioniert über Web meines Wissens nicht. Das gilt nur wenn man sich von der Shell aus anmeldet. Da müsste sowas wie "password" oder md5 stehen. Das Password musst Du dann natürlich noch vergeben. Dass machst Du auch als postgres.
 
OP
froemken

froemken

Member
Mit "ident sameuser password" bekomme ich den postgresql-service überhaupt nicht mehr gestartet: "Konnte postmaster nicht starten"

Selbe Fehlermeldung wenn ich password durch "md5" ersetze.

Hab gerade auch md5 wieder entfernt und postgresql startet sofort wieder?!??!

Stefan

PS: Werd mal schaun, ob noch irgendwelche zusätzlichen Files zu installieren sind, damit das mit md5 und co überhaupt funktioniert
 

nbkr

Guru
Wenn Du password angibst kannst Du ident sameuser weglassen. Ansonsten in "man postgresql" sollten die genauen Werte eigentlich drin stehen.
 
OP
froemken

froemken

Member
Hey...vielen Dank, Anmeldung an phpPgAdmin klappt nun endlich,

man postgresql liegt ja eigentlich nahe. Hab mich bisher nur mit den Kommentaren von der pg_hba.conf und der Installationsanleitung von phpPgAdmin rumgeschlagen. google hat mit mit meiner Fehlermeldung gerade mal 2 Beiträge rausgesucht.

Ich hab die Einstellungen jetzt erstmal mit "password" belegt. Sollte ich später auf md5 umstellen gehe ich mal davon aus, dass die Anmeldung nicht klappen wird, da das Passwort ja clear in der DB steht. Muss ich dann beim Anlegen eines neuen Benutzers dann das md5-Passwort händisch an der Konsole eintippen? Und das dann auch noch 2 mal?

Vielen Dank, mal schaun was mich nun in der Welt des PostGre erwartet.

Stefan
 

nbkr

Guru
Das Passwort kannst Du auch bei md5 im Klartext eingeben. Die Verschlüsselung macht Postgres anschließend selbst. Musst halt nur angeben das es verschlüsselt werden soll. Müsste in der Art

ALTER USER bla SET password = md5('password');

so, oder so ähnlich müsste es gehen.
 
OP
froemken

froemken

Member
OK...Server läuft, Anmeldung läuft. Vielen vielen Dank ;-)

Ab jetzt kann dieser Thread gerne Beendet werden.

Stefan

PS: Bei meiner PostGreSQL-Installation wurde bei RPM-Installation dem Postgres-User ein Passwort vergeben, welches mir nicht bekannt ist. Folglich konnt ich auch mit dem Befehl "psql -U stefan -d nlat -f jobs.sql" keine Tabellen erzeugen, weil ständig die Authentifizierung für postgres fehlschlägt, obwohl ich mich ja mit dem User stefan angemeltet habe. Mit dem user stefan habe ich nun mit Hilfe von phpPgAdmin einfach das Passwort von Postgres geändert und konnte nun mit dem neuen Passwort auch die sql-Dateien per psql ausführen.
 

whois

Ultimate Guru
Hi Stefan

Mach ich gerne und damit wird er auch für andere Konserviert.

Danke an nbkr, man kann so alt werden wie man will.

Das lernen nimmt nie ein Ende. :wink:
 
Oben