Salut tout le monde,
QUand j'utilise psql et pg_dumpall, on me demande trois fois le mot de passe; c'est normal?
Code:
1
2
3
4 F:\00000 Applications\PostgreSQL\bin>pg_dumpall.exe -U postgres >F:\zz02.txt Mot de passe : Mot de passe : Mot de passe :
Version imprimable
Salut tout le monde,
QUand j'utilise psql et pg_dumpall, on me demande trois fois le mot de passe; c'est normal?
Code:
1
2
3
4 F:\00000 Applications\PostgreSQL\bin>pg_dumpall.exe -U postgres >F:\zz02.txt Mot de passe : Mot de passe : Mot de passe :
Le comptage est que chaque base demande un mot de passe.
https://www.postgresql.org/docs/curr...g-dumpall.html
Citation:
-W
--password
Force pg_dumpall to prompt for a password before connecting to a database.
This option is never essential, since pg_dumpall will automatically prompt for a password if the server demands password authentication. However, pg_dumpall will waste a connection attempt finding out that the server wants a password. In some cases it is worth typing -W to avoid the extra connection attempt.
Note that the password prompt will occur again for each database to be dumped. Usually, it's better to set up a ~/.pgpass file than to rely on manual password entry.
Je te remercie pour la réponse.
Mais je ne suis malheureusement pas plus avancé car je trouve la doc PostgreSQL pas intuitive du tout.
Quelle commande dois-je lancer maintenant si je veux utiliser -W ou --password et être prompté une seule fois?
Je ne veux pas utiliser le fichier .pgpass car cela consiste à marquer en cleir un password dans un fichier.
Les commandes suivantes échouent... il me manque la syntaxe précise...
Code:
1
2
3
4
5
6
7 F:\00000 Applications\PostgreSQL\bin>pg_dumpall.exe -U postgres -W my_password > F:\zz02.txt pg_dumpall: erreur : trop d'arguments en ligne de commande (le premier étant « my_password ») Essayer « pg_dumpall --help » pour plus d'informations. F:\00000 Applications\PostgreSQL\bin>pg_dumpall.exe -U postgres --password my_password > F:\zz02.txt pg_dumpall: erreur : trop d'arguments en ligne de commande (le premier étant « my_password ») Essayer « pg_dumpall --help » pour plus d'informations.
[EDIT : ça marche]
Il faut créer un fichier .pgpass avec les bons droits en lecture (faire un chmod sous Linux et utiliser l'équivalent sous Windows).
Contenu du fichier
Renseigner ensuite la variable PGPASSFILE.Code:*:*:*:*:my_password
Je suis sous Windows.
Et on relance l'export, en précisant qu'on ne veut pas être prompté pour un password, donc PostgrteSQL va lire le fichier indiqué dans PGPASSFILE.Code:
1
2
3
4F:\00000 Applications\PostgreSQL\bin>set PGPASSFILE=F:\00000 Applications\PostgreSQL\bin\.pgpass F:\00000 Applications\PostgreSQL\bin>echo %PGPASSFILE% F:\00000 Applications\PostgreSQL\bin\.pgpass
Ouf, c'est bon, mais mettre un password en clair dans un fichier... ce n'est point très propre...Code:
1
2
3F:\00000 Applications\PostgreSQL\bin>pg_dumpall.exe -U postgres --no-password > F:\zz03.txt F:\00000 Applications\PostgreSQL\bin>
La commande sans -W est bien comme dit la documentation. Mais si on met -W, on ne devrait pas mettre non plus le mot de passe après puisque ça met le mot de passe au clair (ou bien pour quelque raison d'autre ? je ne sais pas.)
Puisque, comme dit la documentation aussi, pg_dumpall appelle pg_dump internement, le "prompt" pour le mot de passe est attendu pour chaque base. C'est comme ça que je comprends en ce sujet. Je n'ai pas d'information sur le méchanisme privée à Postgres, désolé. Peut-être quelqu'un plus savant peut faire des lumières en plus ?
+ Ce que tu fait dans l'edit : c'est très bien et merci.