W przypadku użytkowników, którzy nie są członkami roli sysadmin w wystąpieniu programu SQL Server, należy wykonać następujące czynności, aby udzielić dostępu do rozszerzonej procedury składowanej xp_cmdshell. Ponadto, jeśli zapomniałeś jednego z kroków, które wymieniłem, błąd, który zostanie zgłoszony.
-
Włącz procedurę xp_cmdshell
Msg 15281, poziom 16, stan 1, procedura xp_cmdshell, wiersz 1 Program SQL Server zablokował dostęp do procedury „sys.xp_cmdshell” składnika „xp_cmdshell”, ponieważ ten składnik jest wyłączony w ramach konfiguracji zabezpieczeń dla tego serwera. Administrator systemu może włączyć użycie 'xp_cmdshell' za pomocą sp_configure. Aby uzyskać więcej informacji na temat włączania „xp_cmdshell”, zobacz „Konfiguracja obszaru powierzchni” w dokumentacji SQL Server Books Online.*
-
Utwórz login dla użytkownika niebędącego administratorem, który ma publiczny dostęp do głównej bazy danych
Msg 229, poziom 14, stan 5, procedura xp_cmdshell, wiersz 1 Odmówiono uprawnienia EXECUTE do obiektu „xp_cmdshell”, bazy danych „mssqlsystemresource”, schematu „sys”.*
-
Przyznaj uprawnienia EXEC do procedury składowanej xp_cmdshell
Msg 229, poziom 14, stan 5, procedura xp_cmdshell, wiersz 1 Odmówiono uprawnienia EXECUTE do obiektu „xp_cmdshell”, bazy danych „mssqlsystemresource”, schematu „sys”.*
-
Utwórz konto proxy, w ramach którego xp_cmdshell będzie uruchamiane przy użyciu sp_xp_cmdshell_proxy_account
Msg 15153, Poziom 16, Stan 1, Procedura xp_cmdshell, Wiersz 1 Nie można pobrać informacji o koncie proxy xp_cmdshell lub są one nieprawidłowe. Sprawdź, czy poświadczenie „##xp_cmdshell_proxy_account##” istnieje i zawiera prawidłowe informacje.*
Z twojego błędu wynika, że pominięto krok 2 lub 3. Nie znam klastrów, aby wiedzieć, czy jest coś szczególnego w tej konfiguracji.