L'obtention de l'autorisation exécuter pour xp_cmdshell

Je vois un message d'erreur lorsque vous essayez d'exécuter xp_cmdshell de l'intérieur d'une procédure stockée.

xp_cmdshell est activé sur l'instance. Et l'exécution d'autorisation a été accordée à mon utilisateur, mais je vois toujours l'exception.

L'autorisation d'EXÉCUTION a été refusée sur l'objet "xp_cmdshell’, base de données "mssqlsystemresource", le schéma "sys"

Partie de la question est que c'est un cluster partagé, et nous avons une seule base de données sur l'instance, afin de ne pas avoir une gamme complète d'autorisations d'administrateur. Donc je ne peux pas y aller et l'octroi des autorisations, et ce-pas.

  • Pourquoi utilisez-vous le plus dangereux de la procédure stockée jamais construit? (xp_cmdshell)
  • Il est plus vieux code, et pas le temps actuellement de réécriture. Nous l'utilisons pour appeler BCP pour importer un fichier dans une table temporaire pour le traitement. La table temporaire est le sql dynamique, et de générer le .fmt fichier basé sur la même logique que le sql dynamique utilise. Il serait plus qu'un jour pour re-mettre en œuvre.
  • Vous pouvez poster exactement SQL numéro de version du Serveur, y compris le numéro de build?
  • SQLServer 2005, 9.00.3042.00, Enterprise Edition, 64-bit
  • Est-il possible d'exécuter cette requête sur votre système et après la date de retour? select expiry_date from master.sys.certificates where name = '##MS_SQLResourceSigningCertificate##'
  • Pas de résultats retournés. Aucun résultat quand j'ai sauter la clause where et tout sélectionner à partir du maître.sys.les certificats. Il peut être un problème d'autorisations
  • C'est un problème de permission (le non-retour). J'ai essayé sur une étroite construire (3077, SP2) et le certificat expire en 2017, il devrait être bon. En outre, la signature de code est suposé pour valider l'heure d'expiration, à l'heure de signature, pas le temps de vérification. Je vous ai demandé de le faire parce que c'est très bizarre de voir la permission refusée à se référer à mssqlsystemresource db.
  • Ok - merci. J'ai pensé. J'ai vu des solutions à l'aide d'un proxy-compte, mais je suis de commander à distance un DBA qui a un accès complet au site. Les commandes je suis d'envoi sont de plus en plus compliqué.