Précédent   Forum des professionnels en informatique > Bases de données > MS SQL-Server > Outils
Outils Forum d'entraide sur les outils gravitant autour de MS-SQL Server, tels que bcp, TDS, ...
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 01/04/2011, 12h26   #1
Invité de passage
 
Inscription : novembre 2010
Messages : 4
Détails du profil
Informations forums :
Inscription : novembre 2010
Messages : 4
Points : 0
Points : 0
Par défaut Batch DOS caractères spéciaux et SQL 2005

Bonjour,

Question concernant mot-de-passe sql2005 avec caractères spéciaux et batch MS-DOS.

Nous avons un BATCH MS-DOS pour faire des migrations automatiques et des tests sur SQL2005.
ex : modif.cmd.
quand on lance modif.cmd on lui passe des paramètres :
Code :
modif.cmd SERVER_NAME DB_NAME, USER_NAME, MOT_DE_PASSE.
dans le mot de passe, en sql2005, on peut avoir des caractères spéciaux.
J'ai mis un '%' dans mon password. ex : pwd1% pour tests.
dans le batch, j'exécute la commande :

Code :
1
2
call CheckSQLVersion %1 %2 %3 %4 
@if %errorlevel% == 1 goto EXIT
Quand je lance mon BATCH avec les paramètres, j'ai une erreur SQL :
Citation:
- login failed.
est-il possible de mettre un '%' dans un mot-de-passe qui peut être traité par un batch DOS ?
si solution il y a, quelle est-elle ?

je vous remercie par avance pour une réponse.

salutations.
PSam54 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/04/2011, 20h54   #2
Membre Expert
 
Inscription : juin 2007
Messages : 1 056
Détails du profil
Informations forums :
Inscription : juin 2007
Messages : 1 056
Points : 1 078
Points : 1 078
salut

Il te faut doubler le pourcent. Mais je te recommande vivement d'utiliser un compte Windows à la place de ton compte SQL Server si c'est possible.
__________________
Emmanuel T.
kagemaru est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/04/2011, 10h54   #3
Invité de passage
 
Inscription : novembre 2010
Messages : 4
Détails du profil
Informations forums :
Inscription : novembre 2010
Messages : 4
Points : 0
Points : 0
Bonjour,
merci pour la réponse.
voici un peu plus de détails.

comment faire pour passer un mot-de-passe avec des caractères spéciaux ?

nous sommes en SQL2005.
J'ai une commande qui appelle un fichier .cmd

le mot de passe est : 'password&'

l'appel se fait comme ceci :

Code :
1
2
3
4
5
SQLServerVersion    SERVER_NAME    DB_NAME    sa    e:\temp\    password&
%1 = SERVER-NAME
%2 = DB-NAME
%3 = USER-ID    
%4 = PASSWORD
je perds le caractère '&' dans le mot de passe.
dans le batch SQLServerVersion, on a :
Code :
CALL ISQLB %1 %2 %3 SQLServer_quelle_version.sql %LOGFILE% %5
ISQLB contient :
Code :
1
2
3
4
5
6
7
8
    sqlcmd -b -m-1 -r 0 -S %1 -d %2 -U %3 -P %7 -i %4 -o %TEMP%\ISQLB.TMP -w 360 >> %5
%1 = Serveur name
%2 = DATABASE name
%3 = User ID
%4 = File TO execute
%5 = Log file name
%6 = Output file name
%7 = PASSWORD
SQLServer_quelle_version.sql contient :
Code sql :
1
2
3
SET nocount ON
     SELECT @@version
     go

quand le script SQLServer_quelle_version fait un accès à SQLSERVER, j'ai une erreur car le mot-de-passe n'est pas accepté par SQL SERVER.

comment faire pour passer un mot-de-passe avec des caractères spéciaux ?
PSam54 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/04/2011, 17h48   #4
Membre Expert
 
Homme Etienne ZINZINDOHOUE
Ingénieur développement
Inscription : mars 2010
Messages : 1 138
Détails du profil
Informations personnelles :
Nom : Homme Etienne ZINZINDOHOUE
Localisation : France, Nord (Nord Pas de Calais)

Informations professionnelles :
Activité : Ingénieur développement
Secteur : High Tech - Opérateur de télécommunications

Informations forums :
Inscription : mars 2010
Messages : 1 138
Points : 2 466
Points : 2 466
Envoyer un message via Yahoo à zinzineti
1.
Pour dé-spécialiser le caractère esperluette (&) il faut utiliser l'accent circonflexe (^)

exemple :
Citation:
resultat : &test
2.
Pour dé-spécialiser le caractère pourcent (%) il faut le doubler

exemple :
Citation:
resultat : %test
__________________
Etienne ZINZINDOHOUE
Billets-Articles
zinzineti est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 09/05/2011, 11h44   #5
Invité de passage
 
Inscription : novembre 2010
Messages : 4
Détails du profil
Informations forums :
Inscription : novembre 2010
Messages : 4
Points : 0
Points : 0
Par défaut Batch DOS caractères spéciaux et SQL 2005

Bonjour,

comme je l'explique, le mot de passe vient de SQLSERVER 2005. donc, les caractères spéciaux peuvent être placés n'importe où dans le mot.
on peut avoir dans le mot de passe :
selon le désir de l'administrateur de sql.
dans un batch, on récupère le mot de passe par un paramètre passé comme exemple ci-dessous dans les précédents mails.
comment puis-je régler ce problème en sachant que les clients n'utilisent pas WINDOWS authentication.
merci par avance pour votre réponse.
PSam54 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/05/2011, 20h44   #6
Membre Expert
 
Inscription : juin 2007
Messages : 1 056
Détails du profil
Informations forums :
Inscription : juin 2007
Messages : 1 056
Points : 1 078
Points : 1 078
Citation:
comme je l'explique, le mot de passe vient de SQLSERVER 2005
Tu n'expliques pas très bien ton contexte. Comment récupères-tu ton mot de passe ?

Nous t'avons expliqué que pour passer un mot de passe avec caractères spéciaux, il te faut :

doubler les %
utiliser un ^ devant les &

donc si le mot de passe est stocké dans SQL Serve (càd dans une table), tu peux utiliser la fonction REPLACE pour effectuer les 2 changements indiqués ci-dessus.
__________________
Emmanuel T.
kagemaru est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 04h11.


 
 
 
 
Partenaires

Hébergement Web