IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Outils SQL Server Discussion :

Batch DOS caractères spéciaux et SQL 2005


Sujet :

Outils SQL Server

  1. #1
    Candidat au Club
    Inscrit en
    Novembre 2010
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Novembre 2010
    Messages : 4
    Points : 2
    Points
    2
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 :
    - 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.

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    1 056
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 056
    Points : 1 216
    Points
    1 216
    Par défaut
    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.

  3. #3
    Candidat au Club
    Inscrit en
    Novembre 2010
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Novembre 2010
    Messages : 4
    Points : 2
    Points
    2
    Par défaut
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    CALL ISQLB %1 %2 %3 SQLServer_quelle_version.sql %LOGFILE% %5
    ISQLB contient :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 ?

  4. #4
    Membre émérite

    Homme Profil pro
    Chargé de Développement et d'Analyse de données
    Inscrit en
    Mars 2010
    Messages
    1 278
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chargé de Développement et d'Analyse de données
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2010
    Messages : 1 278
    Points : 2 856
    Points
    2 856
    Par défaut
    1.
    Pour dé-spécialiser le caractère esperluette (&) il faut utiliser l'accent circonflexe (^)

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

    exemple :
    resultat : %test
    Etienne ZINZINDOHOUE
    Billets-Articles

  5. #5
    Candidat au Club
    Inscrit en
    Novembre 2010
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Novembre 2010
    Messages : 4
    Points : 2
    Points
    2
    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.

  6. #6
    Membre éprouvé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    1 056
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 056
    Points : 1 216
    Points
    1 216
    Par défaut
    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.

Discussions similaires

  1. les caractères spéciaux en SQL
    Par bouguima001 dans le forum Firebird
    Réponses: 3
    Dernier message: 13/09/2011, 15h59
  2. comment insérer les caractères spéciaux dans sql server 2005
    Par dev-deb dans le forum MS SQL Server
    Réponses: 6
    Dernier message: 03/10/2010, 14h08
  3. Caractères spéciaux dans Sql Server
    Par LefortLudovic dans le forum Administration
    Réponses: 3
    Dernier message: 09/12/2008, 10h55
  4. Réponses: 2
    Dernier message: 11/01/2007, 12h28

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo