En fin de compte, j'essaie de trouver un moyen de permettre l'utilisation sûre de BCP et de certaines autres fonctionnalités de ligne de commande à partir de SQL Server.
L'organisation dans laquelle je travaille a actuellement désactivé xp_cmdshell, mais je pense que si je peux présenter un modèle de sécurité sûr pour son utilisation, ils envisageront de l'activer.
L'idée que j'ai eue jusqu'à présent est de créer un wrapper stored proc qui exécute les opérations en ligne de commande au nom de l'utilisateur. L'opération serait transmise par l'utilisateur sous forme de chaîne de caractères qui pourrait ensuite être
- vérifié pour s'assurer qu'il ne contient pas d'éléments douteux - j'ai trouvé une fonction ici qui devrait aider à cela ( http://msdn.microsoft.com/en-us/library/aa175398(v=sql.80).aspx )
- n'autorisent que les appels à des programmes ou opérations spécifiques - dans mon cas, le premier étant BCP
Mes compétences en matière de DBA sont quelque peu limitées, mais voici ce que j'espère du point de vue de la sécurité.
- tous les comptes utilisateurs normaux ne sont pas autorisés à exécuter xp_cmdshell
- nous créerons un utilisateur (que le sproc EXECUTERA COMME) avec les droits d'appeler xp_cmdshell et pas grand chose d'autre, pas un administrateur en d'autres termes.
- les autorisations existantes de l'utilisateur seront utilisées pour lire les données de la table mais combinées avec les autorisations de ce compte supplémentaire lors de l'utilisation du sproc wrapper.
Si vous pouviez me dire si je suis sur la bonne voie et aussi d'autres choses que je dois prendre en compte car c'est quelque chose que je voudrais présenter aux DBAs.
Gracias
Sam