За потребители, които не са членове на ролята на sysadmin на екземпляр на SQL Server, трябва да извършите следните действия, за да предоставите достъп до разширената съхранена процедура xp_cmdshell. Освен това, ако сте забравили някоя от стъпките, изброих грешката, която ще бъде изведена.
-
Активирайте процедурата xp_cmdshell
Msg 15281, ниво 16, състояние 1, процедура xp_cmdshell, ред 1SQL сървърът блокира достъпа до процедурата 'sys.xp_cmdshell' на компонента 'xp_cmdshell', тъй като този компонент е изключен като част от конфигурацията за сигурност за този сървър. Системният администратор може да разреши използването на 'xp_cmdshell', като използва sp_configure. За повече информация относно активиране на „xp_cmdshell“ вижте „Конфигуриране на повърхностна площ“ в SQL Server Books Online.*
-
Създайте вход за потребителя без системен администратор, който има публичен достъп до основната база данни
Съобщение 229, ниво 14, състояние 5, процедура xp_cmdshell, ред 1. Разрешението EXECUTE беше отказано на обекта 'xp_cmdshell', база данни 'mssqlsystemresource', схема 'sys'.*
-
Дайте разрешение на EXEC за съхранената процедура xp_cmdshell
Съобщение 229, ниво 14, състояние 5, процедура xp_cmdshell, ред 1. Разрешението EXECUTE беше отказано на обекта 'xp_cmdshell', база данни 'mssqlsystemresource', схема 'sys'.*
-
Създайте прокси акаунт, под който ще се изпълнява xp_cmdshell, като използвате sp_xp_cmdshell_proxy_account
Msg 15153, ниво 16, състояние 1, процедура xp_cmdshell, ред 1. Информацията за прокси акаунта на xp_cmdshell не може да бъде извлечена или е невалидна. Проверете дали идентификационните данни „##xp_cmdshell_proxy_account##“ съществуват и съдържат валидна информация.*
От грешката ви изглежда, че стъпка 2 или 3 са пропуснати. Не съм запознат с клъстерите, за да знам дали има нещо конкретно в тази настройка.