Pour les utilisateurs qui ne sont pas membres du rôle sysadmin sur l'instance SQL Server, vous devez effectuer les actions suivantes pour accorder l'accès à la procédure stockée étendue xp_cmdshell. De plus, si vous avez oublié l'une des étapes, j'ai répertorié l'erreur qui sera générée.
-
Activer la procédure xp_cmdshell
Msg 15281, niveau 16, état 1, procédure xp_cmdshell, ligne 1SQL Server a bloqué l'accès à la procédure « sys.xp_cmdshell » du composant « xp_cmdshell » car ce composant est désactivé dans le cadre de la configuration de sécurité de ce serveur. Un administrateur système peut activer l'utilisation de 'xp_cmdshell' en utilisant sp_configure. Pour plus d'informations sur l'activation de 'xp_cmdshell', consultez "Configuration de la zone de surface" dans la documentation en ligne de SQL Server.*
-
Créez une connexion pour l'utilisateur non administrateur système qui a un accès public à la base de données principale
Msg 229, Niveau 14, État 5, Procédure xp_cmdshell, Ligne 1L'autorisation EXECUTE a été refusée sur l'objet 'xp_cmdshell', base de données 'mssqlsystemresource', schéma 'sys'.*
-
Accorder l'autorisation EXEC sur la procédure stockée xp_cmdshell
Msg 229, Niveau 14, État 5, Procédure xp_cmdshell, Ligne 1L'autorisation EXECUTE a été refusée sur l'objet 'xp_cmdshell', base de données 'mssqlsystemresource', schéma 'sys'.*
-
Créez un compte proxy sous lequel xp_cmdshell sera exécuté à l'aide de sp_xp_cmdshell_proxy_account
Msg 15153, Niveau 16, État 1, Procédure xp_cmdshell, Ligne 1Les informations du compte proxy xp_cmdshell ne peuvent pas être récupérées ou ne sont pas valides. Vérifiez que les informations d'identification '##xp_cmdshell_proxy_account##' existent et contiennent des informations valides.*
Il semblerait, d'après votre erreur, que l'étape 2 ou 3 ait été manquée. Je ne connais pas les clusters pour savoir s'il y a quelque chose de particulier dans cette configuration.