pg_restore

Hallo,

ich hab folgendes Problem: Es soll von einem Backup aus die Datenbank lokal bei Verschiedenen kunden befüllt/erstellt werden.

Ich mache das mit einer Batch datei in dieser art:

ECHO ON
SET PGPASSFILE=\Bash fur Kunde\pg\pgpass.conf

cd C:\"Program Files"\PostgreSQL\bin\
pg_restore.exe -h localhost -p 5435 -U usern -d postgres "C:\Bash fur Kunde\backup.backup" 
ECHO Datenbank erstellt
Pause

Das funktioniert so auch, aber der Kunde kann sich die pgpass datei und somit das Passwort anschauen.

Wie kann ich das ganze so gestalten das der Kunde das Passwort nicht mehr lesen kann?
Kann ich vielleicht das ganze irgendwie verschlüsseln oder so?

Das Passwort interaktiv anfordern & eingeben?

Danke für die schnelle Antwort. Meinst du mit eingeben der Kunde soll es dann eingeben, oder irgendein programm?

Die Idee ist einen Ordner mit der Batch-Datei dem Backup und der pgpass.conf zu verschicken. So das dieser nur die Batch ausführen muss und die Datenbank erstellt wird. Diese wird für ein drittes Programm benötigt. Deshalb darf der Kunde auch nicht das Passwort wissen oder herrausfinden

Ach so, dann hatte ich das wohl falsch verstanden.

Warum darf der User keine Passwörter kennen? Er ist eh jederzeit in der Lage, sich die pg_hba.conf auf TRUST zu setzen. Er muß auch selber Backups erstellen und diese auch einspielen können. Ich sehe das konzeptionell kritisch.

Die Alternative dazu wäre, die DB läuft irgendwo remote und Deine Kunden bekommen nur eingeschränkte Rechte, die Administration machst Du oder wer anders. Aber wenn ich Kunde wäre und hätte eine geschäftskritische Anwendung mit einer Datenbank, die zwar bei mir läuft, aus der ich aber ausgesperrt bin, hätte ich arge Bauchschmerzen.

Prinzipiell kannst du das Passwort auch mit dem Statement im Skript übergeben WIMRE, aber ansonsten schliesse ich mich akretschmar an.

Gruß Uwe

Das nützt nichts, wenn der Server beim Kunden läuft. Wie von akretschmer schon erwähnt kann der Kunde die Konfiguration einfach so abändern, dass gar kein Passwort mehr notwendig ist.

Sobald jemand physisch zugriff auf die Dateien einer Datenbank hat, ist es praktisch unmöglich diese zu schützen.

Wenn die Datenbank beim Kunden läuft ist doch anzunehmen, dass dort auch die Daten des Kunden drinstehen.
Warum sollte der keinen Zugriff auf seine Daten bekommen?