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

MS SQL Server Discussion :

[SQL Server 2005] Sécurité et xp_cmdshell?


Sujet :

MS SQL Server

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Septembre 2006
    Messages
    104
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 104
    Par défaut [SQL Server 2005] Sécurité et xp_cmdshell?
    Bonjour.

    J'ai créé une procédure stockée, qui utilise la cmd xp_cmdshell

    Cette procédure fini (en gros) de cette manière :
    EXEC master..xp_cmdshell 'bcp "select champ1, champ3 From ma_tab" queryout "c:\test.txt" -c -T'

    Comme vous pouvez le voir, xp_cmdshell est utilisé pour créer un fichier texte à partir d'une requete (je pense que je vais également lancer un package SSIS dans cette procédure).

    Cepandant je me pose une quetion de sécurité, quand à l'activation de cette commande sur mon serveur.

    N'ayant pas vraiment trouvé d'autre méthode pour ariver à mes fins, je me demandais, s'il ne serais pas judicieux d'activer cette commande avant de lancer le bcp et de la désactivier après dans ma procédure stocké?

    Qu'en dites vous?
    Merci pour votre aide.
    sdisp

  2. #2
    Modérateur

    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Janvier 2005
    Messages
    5 826
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2005
    Messages : 5 826
    Par défaut
    Bonsoir,

    L'appel de cette procédure stockée ne fonctionne que si l'appelant fait partie du rôle sysadmin.
    Donc un compte membre du rôle sysadmin peut très bien faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    EXEC master.dbo.xp_cmdshell 'FORMAT Z:'
    Vous pouvez sécuriser l'accès à cette procédure stockée en créant un utilisateur non membre du rôle sysadmin, et en lui adjoignant un compte de proxy avec la procédure stockée sp_xp_cmdshell_proxy_account

  3. #3
    Membre confirmé
    Inscrit en
    Septembre 2006
    Messages
    104
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 104
    Par défaut
    Bonjour.

    Merci pour cette réponse.

    Effectivement, je viens de voir qu'en utlisant le compte SQL que je m'était créé est qui a des droits de lecture sur une table : ma_table n'est pas autoriser à lancer la commande.

    Donc j'ai voulu lui donner les droits via : sp_xp_cmdshell_proxy_account

    Mais dans la doc, il parle de compte Windows et non SQL.

    Comment puis-je faire pour autoriser mon utilisateur SQL à lancer cette procédure?

    Et quand à activer et désactiver l'autorisation d'utiliser la cmd xp_cmdshell en début et fin de ma procédure qu'en pensé vous?

    Merci d'avance.

  4. #4
    Membre Expert

    Profil pro
    Inscrit en
    Août 2002
    Messages
    1 249
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2002
    Messages : 1 249
    Par défaut
    Le compte SA, un compte SQL serveur, a le rôle SysAdmin et est autorisé à exécuter XP_CMDSHELL.

    Deux solutions :

    1 Executer la procedure stockée sous le compte SA.

    2 Affecter le rôle SysAdmin à un compte SQL et utiliser ce compte.

    Et quand à activer et désactiver l'autorisation d'utiliser la cmd xp_cmdshell en début et fin de ma procédure qu'en pensé vous?
    Cela me parait mieux que de laisser actif la commande en permanence.

  5. #5
    Modérateur

    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Janvier 2005
    Messages
    5 826
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2005
    Messages : 5 826
    Par défaut
    Bonjour,

    D'accord avec Ylarvor, en revanche je me demande si ce n'est pas un peu "brouillon" de changer les options de configuration dans une procédure stockée ...

  6. #6
    Membre confirmé
    Inscrit en
    Septembre 2006
    Messages
    104
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 104
    Par défaut
    Bonjour.

    Merci pour vos réponse je pense donc que je vais créer un compte avec le rôle sysAdmin et activer xp_cmdshell dans la procédure comme me le conseil ylarvor.
    Je pense aussi que cela fait un peu brouillon comme le dis elsuket mais question sécurité, je me sentirais plus tranquille, donc la sécu passe avant.

    Merci encore pour votre aide.
    @+
    sdisp

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Installation]SQL Server 2005 Express Edition sur XP home
    Par Médiat dans le forum MS SQL Server
    Réponses: 15
    Dernier message: 06/08/2005, 18h22

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