было отказано в разрешении на объект xp_cmdshell - PullRequest
1 голос
/ 15 декабря 2011

Я получаю разрешение на выполнение для объекта 'xp_cmdshell'.

Вот ситуация, у меня есть хранимая процедура с именем ExportFile. Я вызываю хранимую процедуру через SqlCommand из веб-приложения с виртуального ПК. во время выполнения этой команды я получаю ошибку разрешения

Затем я отлаживаю его через профилировщик SQL и запускаю результат из профилировщика в окно запроса (это означает, что я запускаю StoredProcedure с необходимыми параметрами, основанными на профилировщике и в окне запроса), и, что удивительно, работает нормально. файл был успешно экспортирован.

Интересно, что не так с этим, учитывая, что мой логин в строке подключения является владельцем и администратором.

Ответы [ 2 ]

3 голосов
/ 15 декабря 2011

Учетная запись пользователя SQL, используемая с веб-сервером, не имеет разрешений на использование этой расширенной процедуры.Вам придется повысить права этого пользователя (плохая идея) или назначить прокси-учетную запись в безопасности SQL, которая может выполнять процедуру на сервере, не делая веб-учетную запись системным администратором.

1 голос
/ 05 февраля 2014

Мы должны дать этому пользователю разрешение на выполнение

Синтаксис:

GRANT EXECUTE ON xp_cmdshell TO [Domain\User]

Примечание. Убедитесь, что вы используете логин, для которого вы даете разрешение на выполнение.Я обнаружил, что много раз пользователь использовал diff id и жаловался.

...