Vous n'êtes pas identifié(e).
Pages : 1
Bonjour à tous,
Je voudrais faire un dump pour une base pg (9.0) via une application clientèle.
Avec mon appli je lance la commande pg_dump ... oup l'invite DOS demande le password de la base pour faire le dump ...
Y-a-t'il un moyen pour passer le password en paramètre pour la commande pg_dump ?
si non y-a-t'il d'autre solutions ?
Cordialement.
A+
Cordiales Salutations
Hors ligne
Inscrire le mot de passe en clair dans un script ou une ligne de commande est une mauvaise idée. C'est pour cela que ce n'est pas possible avec pg_dump
La solution consiste à définir un fichier pgpass qui contiendra ce mot de passe. pgdump utilisera ce fichier pour s'authentifier :
La doc est là :
http://docs.postgresqlfr.org/9.1/libpq-pgpass.html
damien clochard
http://dalibo.org | http://dalibo.com
Hors ligne
Bonjour,
Merci pour votre réponse !
j'ai réussi à dumper la base de données avec l'utilisation de pgpass.conf, mais c'est pas TOP en sécurité, comme ça n’importe qui peu accéder à C:\Documents and Settings\USER\Application Data\postgresql et regarde le password depuis le pgpass.conf.
Merci.
Cordiales Salutations
Hors ligne
Normalement, seul l'utilisateur postgres a accès à ce fichier. Et si ce n'est pas le cas, à vous de faire en sorte que cela le soit (onglet Sécurité des propriétés du fichier, si je me rappelle bien). C'est d'ailleurs pour ça qu'on fait un "chmod 600" du fichier sous Unix... pour empêcher que les autres puissent lire ou modifier ce fichier. Et pg_dump vérifie que ce fichier est bien en 600 sous Linux et si ce n'est pas le cas, il refuse de l'utiliser. Par contre, je ne sais pas si cette protection est présente pour Windows.
Guillaume.
Hors ligne
Merci gleu,
Voila ,
J'ai une application (exécutable et leur runtime bien sur des DLL ...), dans le même dossier de mon exe j'ai ajouté le pg_dump.exe et libpq.dll, gssapi32.dll, ...
l'appli est disponible en réseaux usine, chaque personne peut lancer l'exécutable, et logger avec leur compte.
pour le dump, l'utilisateur doit mettre le chemin de sauvegarde puis clique sur valider c'est tout, la solution que j'ai trouvé actuellement c'est de créer le dossier C:\Documents and Settings\USER\Application Data\postgresql et le fichier pgpass.conf d'une manière software et j'ajoute par la suite la ligne ip:5432:*:user:pass dans le pgpass.conf et après sauvegarde je supprime le fichier.
Que pensez-vous pour cette solution ?, avez-vous d'autre idée ?
Merci d'avance.
Cordiales Salutations
Hors ligne
C'est une bonne solution: création du fichier, pg_dump, suppression du fichier.
Guillaume.
Hors ligne
Merci
Cordiales Salutations
Hors ligne
Pages : 1