Bonjour,
Je dispose actuellement de scripts en production qui permettent d'attaquer une base de données PostgreSQL. Les mots de passe de connexion ont récemment été renforcés et plusieurs de ces scripts ne fonctionnent plus depuis à cause de caractères spéciaux % ou $ ou encore ;
J'ai donc effectué des recherches sur le sujet mais aucune des pistes ne fonctionnent (les simples cotes, doubles cotes, caractères d'échappement).
J'avoue ne pas avoir trop de familiarités avec le sujet et que les documentations techniques je ne les comprends pas toutes ^^
Voici le morceau du script en question qui pose soucis :
Code PowerShell : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 $connectionString = "Driver={PostgreSQL Unicode(x64)};Server=x.x.x.x;Port=xxxx;Database=nom_base;uid=nom_user;pwd=1?250$EM1Md@%1Szqqm7;" $c = New-Object System.Data.Odbc.OdbcConnection $c.ConnectionString = $connectionString $c.Open()
Je précise que cette instruction passe pour 4 de mes 5 scripts (1 script par base) car les autres ne se connectent pas avec un mdp comportant un % ou un $--> erreur 08001 password authentication failed
Ce qui a été testé et ne fonctionne pas au vu de mes recherches google :
- oter les doubles cotes pour les remplacer par de simples cotes
- idem mais en mettant le password aussi entre doubles cotes en plus
- garder les doubles cotes en place mais indiquer le mot de passe avec des ` avant les caractères spéciaux % et $
- j'ai aussi tenter de mettre le mot de passe en variable déclarée avant $connectionString et en testant avec echo sur Powershel ISE de remplacer complètement les $ par des ` (j'ai un compte de secours qui ne comportant pas de mdp avec % donc j'ai pu tester celà)
Et là je suis assez perplexe et à court d'idées, mais j'imagine que pour des pros ça doit être d'une évidence enfantine, donc j'espère trouver la solution et la compréhension de ce que j'ai raté par ici ^^
merci par avance pour votre aide
Partager