web-dev-qa-db-fra.com

Dans URL PostgreSQL, je ne peux pas utiliser de mot de passe contenant des caractères spéciaux

J'ai une base de données PostgreSQL à Azure

La chaîne passwd a des caractères spéciaux comme ceux-ci:

)mvd99/iyH_=ag=Por/W}%%aKY^ygt+,sC7%%P?APOU
psql --dbname=postgresql://db_user@mydemoserver:)mvd99/iyH_=ag=Por/W}%%aKY^ygt+,sC7%%[email protected]:5432/mydb

lors de l'exécution de la commande PSQL, cela me montre l'erreur suivante:

psql: invalid percent-encoded token: "iyH_=ag=Por/W}%%aKY^ygt+,sC7%%P"

J'ai déjà essayé de mettre la chaîne passwd dans des guillemets, mais cela ne fonctionne pas

Quelles autres options ai-je? Je ne peux pas changer le passwrd

Je suis intéressé à utiliser le client PSQL, car je dois faire de très grandes sauvegardes

3
Sanx

Ce n'est pas une bonne idée de spécifier le mot de passe sur la ligne de commande/dans l'URL de toute façon. Si vous utilisez le .pgpass- 1 fichier ou la variable d'environnement PGPASSFILE vous entrez autour de cela.

Cela dit, en utilisant un mot de passe alpha-numérique (URL coffre-fort, comme par exemple Hex), seul le mot de passe est tout aussi sûr et beaucoup plus portable (s'il est aléatoire et assez long).

1
eckes