1 votes

Comment configurer un wrapper de procédure stockée et des paramètres de sécurité pour fournir un accès sécurisé aux opérations en ligne de commande ?

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

  1. 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 )
  2. 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

0voto

Jay Adams Points 306

Une manière plus sûre, et peut-être beaucoup plus facile, de donner aux utilisateurs l'accès aux outils en ligne de commande comme BCP serait d'utiliser un outil tel que Frontière du système .

Les commandes s'exécuteront sur votre serveur SQL sous un compte disposant de l'accès approprié, tandis que l'utilisateur qui les exécute n'aura pas besoin d'avoir un accès au serveur ou un login SQL. Il n'est pas non plus nécessaire de faire face aux réticences concernant l'utilisation de xp_cmdshell. De plus, tout ce qui concerne l'exécutant et le résultat est enregistré dans une table d'audit.

Divulgation complète : je possède la société qui le fabrique.

Jay

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X