Backup trotz .pgpass nur mit Passworteingabe möglich

Hallo Zusammen,

ich habe schon ziemlich viele Beiträge dazu gelesen, wie man eine Datensicherung macht ohne das Passwort eingeben zu müssen.
Aber bei mir gab es bis jetzt noch keinen Erfolg.

Die Befehlszeile lautet so: (Server, der die Datensicherung durchführt)

ssh root@server pg_dump -U lxoffice -h 127.0.0.1 -p5432 datenbank > datenbank.sql

Die /home/lxoffice/.pgpass sieht folgendermaßen aus: (Server, wo Datenbanken sind)

localhost:5432:datenbank:lxoffice :p assword

Die Rechte habe ich auf 0600 gestellt. Wobei Gruppe und User auf root steht. Sollte ich das auch noch umändern???

Danke schon mal im vorraus

Das pg_dump führt der Unix-User root aus, nicht lxoffice. Frage also an Dich: wo wird die ~/.pgpass erwartet?

Außerdem ist das ganze empfindlich auf den Servernamen: ‘127.0.0.1’ != ‘localhost’


Andreas

im root-verzeichnis??? :confused: :confused: :confused:

sollte ich dann lieber -h localhost angeben oder wie meinst du das??? :confused: :confused: :confused:

Sorry, bin da einwenig überfragt :frowning:



test=*# select 'ja, ja' as antwort;
 antwort
---------
 ja, ja
(1 row)

Andreas

supppeer. hat funktioniert.

nur wenn ich ein pg_dumpall mache. fragt er mich immer wieder und selbst wenn ich das passwort eingabe, macht er es nur teilweise…

folgende fehlermeldungen kommen dann immer:

pg_dumpall: Anfrage fehlgeschlagen: FEHLER:  keine Berechtigung für Relation pg_authid
pg_dumpall: Anfrage war: SELECT rolname, rolsuper, rolinherit, rolcreaterole, rolcreatedb, rolcatupdate, rolcanlogin, rolconnlimit, rolpassword, rolvaliduntil, pg_catalog.shobj_description(oid, 'pg_authid') as rolcomment FROM pg_authid ORDER BY 1

Ja, pg_authid enthält auch Passwörter. Deswegen mußt Du DB-Superuser sein, um die auslesen zu dürfen. Das ist der ausführende User offensichtlich nicht.

Andreas

hm, stimmt. das ist bei mir nur postgres

kann ich das irg’wie umgehen oder kann ich nachträglich lxoffice zum superuser machen?

Ja.

kretschmer@tux:~$ psql -U foo test
psql (8.4.1)
Type "help" for help.

test=> select * from pg_authid;
ERROR:  permission denied for relation pg_authid
test=!> \q
kretschmer@tux:~$ psql test
psql (8.4.1)
Type "help" for help.

test=# alter user foo superuser;
ALTER ROLE
test=*# commit;
COMMIT
test=# \q
kretschmer@tux:~$ psql -U foo test
psql (8.4.1)
Type "help" for help.

test=# select * from pg_authid;
  rolname   | rolsuper | rolinherit | rolcreaterole | rolcreatedb | rolcatupdate | rolcanlogin | rolconnlimit |             rolpassword             | rolvaliduntil | rolconfig
------------+----------+------------+---------------+-------------+--------------+-------------+--------------+-------------------------------------+---------------+-----------
 postgres   | t        | t          | t             | t           | t            | t           |           -1 |                                     |               |

Andreas

nun fragt er mich jedes mal nach dem passwort :frowning: