Ergebnis 1 bis 9 von 9

Thema: pgdump und Passwort

  1. #1
    melodoi ist offline Neuer Benutzer
    Registriert seit
    05.01.2009
    Beiträge
    22

    Frage pgdump und Passwort

    Hallo,

    da man das Passwort nicht an die pgdump übergeben kann, gibt es ja die Möglichkeit die pgpass.conf (Windows) in den Anwendungsdaten\postgresql des Users anzulegen, die dann das Passwort enthält. Mal unabhängig davon, dass ich diese Variante als nicht sicherer einschätze, als das man das Passwort direkt an die exe übergeben könnte, habe ich trotzdem noch ein Problem damit:
    Ich habe eine Script, dass die pgpass.conf anlegt, den dump mit pgdump.exe erzeugt und die pgpass.conf wieder löscht. Das Script wird im geplaten Takt aufgerufen. Funktioniert so ganz gut.
    Wenn der geplante Task aber nun mit einem User gestartet wird, der den Server noch nie angemeldet hat, kann das Script die pgpass.conf nicht anlegen, da das Profil nicht existiert. Da ich sehr viele Installationen draußen habe taucht das Problem immer mal wieder auf. Hast du eine Idee, wie man das sinnvoller gestallten kann? Am liebsten wäre mir eine pgdump, der man das Passwort mit übergeben kann. Die Sicherheit ist gewart, da mein Script eine exe ist, und ich es der Einfachheit hier nur Script nenne (funktionniert endlich auch nicht anders).

    Danke Sylvio

  2. #2
    akretschmer ist offline Super-Moderator
    Registriert seit
    29.10.2006
    Ort
    Nähe Dresden
    Beiträge
    5.337

    Standard

    Zitat Zitat von melodoi Beitrag anzeigen
    Hallo,

    da man das Passwort nicht an die pgdump übergeben kann, gibt es ja die Möglichkeit die pgpass.conf (Windows) in den Anwendungsdaten\postgresql des Users anzulegen, die dann das Passwort enthält. Mal unabhängig davon, dass ich diese Variante als nicht sicherer einschätze, als das man das Passwort direkt an die exe übergeben könnte,
    Falsch. Wenn Du das als Parameter übergibst, taucht es so auch in der Prozeßliste auf, und damit für andere User sichtbar. Eine ~/.pgpass ist _nur_ für den User lesbar, dem diese gehört. Das ist sicherheitstechnisch Tag/Nacht.

    Der Rest ist eher ein Windoze-Problem, zu dem ich einfach mal den Nuhr mache.

    Andreas
    --
    ads Das hatte dir akretschmer gestern schon gesagt und siehe da sobald du das machst, funktioniert es ;-)
    https://www.xing.com/profile/Andreas_Kretschmer7

  3. #3
    castorp ist offline Erfahrener Benutzer
    Registriert seit
    27.06.2009
    Beiträge
    493

    Standard

    Zitat Zitat von melodoi Beitrag anzeigen
    Wenn der geplante Task aber nun mit einem User gestartet wird, der den Server noch nie angemeldet hat, kann das Script die pgpass.conf nicht anlegen, da das Profil nicht existiert.
    Du kannst doch über die Umgebungsvariable PGPASSFILE definieren, wo die pgpass Datei liegt. Wenn Du die Datei an einem definierten Ort (nicht Profil-spezifisch) anlegen kannst dann brauchst Du vor dem Aufruf nur noch die Variable setzen. In einer Batch-Datei sehr einfach zu lösen
    Code:
    REM basedir auf das Verzeichnis setzen in dem sich diese Batchdatei befindet.
    SET basedir=%~dp0
    echo localhost:*:*:user_name:password> %basedir%pgpass.conf
    set PGPASSFILE=%basedir%pgpass.conf
    pg_ddump ...
    Ich weiss nicht genau wie PG mit trailing spaces in der Datei umgeht, wenn die aber zu dem Password "dazugezählt" werden, dann ist es ganz wichtig das > Zeichen unmittelbar hinter dem Passwort zu schreiben, sonst landet in der pgpass.conf ein Leerzeichen nach dem Passwort.

  4. #4
    ads
    ads ist offline Super-Moderator
    Registriert seit
    08.02.2006
    Ort
    MD
    Beiträge
    4.020

    Standard

    Zitat Zitat von castorp Beitrag anzeigen
    Ich weiss nicht genau wie PG mit trailing spaces in der Datei umgeht, wenn die aber zu dem Password "dazugezählt" werden, dann ist es ganz wichtig das > Zeichen unmittelbar hinter dem Passwort zu schreiben, sonst landet in der pgpass.conf ein Leerzeichen nach dem Passwort.
    Das ist eher ein Problem der verwendeten Shell als von PostgreSQL.
    Was passiert, wenn du die Daten für Echo in Anführungszeichen setzt? Werden dann - unabhängig von äußeren Leerzeichen - genau die Daten in den Anführungszeichen geschrieben?

    Wenn nicht, besorg dir eine andere Shell. Cygwin bringt die gängigen Unix-Shells mit und ist wesentlich komfortabler zu handhaben.
    Xandrian: Kurz gesagt: Du hast ein falsches Konzept und willst nicht auf ads hören

    Jetzt NEU: PostgreSQL - Datenbankpraxis für Anwender, Administratoren und Entwickler

    PostgreSQL Service & Support

  5. #5
    castorp ist offline Erfahrener Benutzer
    Registriert seit
    27.06.2009
    Beiträge
    493

    Standard

    Zitat Zitat von ads Beitrag anzeigen
    Das ist eher ein Problem der verwendeten Shell als von PostgreSQL.
    Das meinte ich nicht. Die Frage ist, ob Postgres ein trailing space in der pgpass als Teil des Passwortes ansieht oder nicht.

    Die Lösung ist auch in einer Batchdatei kein Problem. Ich wollte nur darauf hinweisen, dass man da eventuell aufpassen muss.

  6. #6
    melodoi ist offline Neuer Benutzer
    Registriert seit
    05.01.2009
    Beiträge
    22

    Blinzeln

    Vielen Dank für die vielen Hinweise! Da ich mich an die Bedingungen meiner (ich sag mal) Kunden halten muss, ist Windows leider vorhanden und nicht zu umgehen (also bitte nicht lachen Andreas! Hilft mir auch nichts!). Ich hab mir die Hilfe von pgdump auch noch mal durchgelesen. Das Passwort ist nicht übergebbar! Es gibt den Schalter -W (Force a password prompt. This should happen automatically if the server requires password authentication.), mehr nicht. Ich würde mich über den "versteckten" Schalter sehr freuen!

    Den Ansatz mit Set PSPASSFILE finde ich sehr interessant und werde ihn testen.

    Darf Andreas jetzt nicht lesen (Spaß): Die Sache mit dem trailing spaces habe ich nicht ganz kappier, tippe aber auf ein UNIX/LINUX-Problen. Unter Windows gab es bis jetzt das Problem mit dem Leerzeichen nicht. :-)

    Ich gebe hier feedback!

    Gruß und Danke noch mal an alle Sylvio

  7. #7
    castorp ist offline Erfahrener Benutzer
    Registriert seit
    27.06.2009
    Beiträge
    493

    Standard

    Zitat Zitat von melodoi Beitrag anzeigen
    Die Sache mit dem trailing spaces habe ich nicht ganz kappier, tippe aber auf ein UNIX/LINUX-Problen. Unter Windows gab es bis jetzt das Problem mit dem Leerzeichen nicht. :-)
    Nochmal: ich weiß gar nicht ob es ein Problem ist...
    Ich habe nie getestet ob pgpass am Ende Leerzeichen enthalten darf (das ist vollkommen unabhängig davon wie die Datei erzeugt wird).
    Aber:wenn keine Leerzeichen am Ende vorhanden sein dürfen, dann muss man bei der Erstellung der Datei aufpassen. Egal wie und mit welchem OS oder Shell die Datei erstellt wird.

  8. #8
    melodoi ist offline Neuer Benutzer
    Registriert seit
    05.01.2009
    Beiträge
    22

    Lächeln

    Hi,

    ich habe die Sache mit dem set probiert und es funktioniert! Trotzdem würde mich die Sache mit der Passwortübergabe an die pg_dump.exe von Andreas noch interessieren!

    Vielen Dank

    Sylvio

  9. #9
    akretschmer ist offline Super-Moderator
    Registriert seit
    29.10.2006
    Ort
    Nähe Dresden
    Beiträge
    5.337

    Standard

    Zitat Zitat von melodoi Beitrag anzeigen
    Hi,

    ich habe die Sache mit dem set probiert und es funktioniert! Trotzdem würde mich die Sache mit der Passwortübergabe an die pg_dump.exe von Andreas noch interessieren!

    Vielen Dank

    Sylvio
    http://www.pg-forum.de/allgemeines/3...-4-backup.html

    Andreas
    --
    ads Das hatte dir akretschmer gestern schon gesagt und siehe da sobald du das machst, funktioniert es ;-)
    https://www.xing.com/profile/Andreas_Kretschmer7

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

Links: Tobias Bauer - IT- und Funkdienstleistungen   -   Bilderrahmen-kaufen.de - Der Onlineshop für Bilderrahmen & Fotorahmen   -   Funkforum