Für Benutzer, die nicht Mitglieder der sysadmin-Rolle auf der SQL Server-Instanz sind, müssen Sie die folgenden Aktionen ausführen, um Zugriff auf die erweiterte gespeicherte Prozedur xp_cmdshell zu gewähren. Wenn Sie außerdem einen der Schritte vergessen haben, habe ich den Fehler aufgelistet, der ausgegeben wird.
-
Aktivieren Sie die xp_cmdshell-Prozedur
Msg 15281, Level 16, State 1, Procedure xp_cmdshell, Line 1SQL Server hat den Zugriff auf die Prozedur „sys.xp_cmdshell“ der Komponente „xp_cmdshell“ blockiert, da diese Komponente als Teil der Sicherheitskonfiguration für diesen Server deaktiviert ist. Ein Systemadministrator kann die Verwendung von „xp_cmdshell“ aktivieren, indem er sp_configure verwendet. Weitere Informationen zum Aktivieren von „xp_cmdshell“ finden Sie unter „Oberflächenkonfiguration“ in der SQL Server-Onlinedokumentation.*
-
Erstellen Sie eine Anmeldung für den Nicht-Sysadmin-Benutzer, der öffentlichen Zugriff auf die Master-Datenbank hat
Nachricht 229, Ebene 14, Zustand 5, Prozedur xp_cmdshell, Zeile 1 Die EXECUTE-Berechtigung wurde für das Objekt „xp_cmdshell“, Datenbank „mssqlsystemresource“, Schema „sys“ verweigert.*
-
Erteilen Sie der gespeicherten Prozedur xp_cmdshell die EXEC-Berechtigung
Nachricht 229, Ebene 14, Zustand 5, Prozedur xp_cmdshell, Zeile 1 Die EXECUTE-Berechtigung wurde für das Objekt „xp_cmdshell“, Datenbank „mssqlsystemresource“, Schema „sys“ verweigert.*
-
Erstellen Sie mit sp_xp_cmdshell_proxy_account ein Proxy-Konto, unter dem xp_cmdshell ausgeführt wird
Msg 15153, Ebene 16, Status 1, Prozedur xp_cmdshell, Zeile 1 Die xp_cmdshell-Proxykontoinformationen können nicht abgerufen werden oder sind ungültig. Stellen Sie sicher, dass die Anmeldeinformationen „##xp_cmdshell_proxy_account##“ vorhanden sind und gültige Informationen enthalten.*
Aus Ihrem Fehler geht hervor, dass entweder Schritt 2 oder 3 übersehen wurde. Ich bin mit Clustern nicht vertraut, um zu wissen, ob es etwas Besonderes an diesem Setup gibt.