Хранимая процедура с EXECUTE AS не может запустить xp_cmdshell

У меня есть пользователь сервера sql, proxyAccount, который я настроил как xp_cmdshell_proxy_account

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

Однако, если я добавлю:

WITH EXECUTE AS 'proxyAccount'

к хранимой процедуре я получаю следующую ошибку при ее выполнении:

Информация учетной записи прокси-сервера xp_cmdshell не может быть получена или недействительна. Убедитесь, что учетные данные '##xp_cmdshell_proxy_account##' существуют и содержат действительную информацию.

В чем может быть проблема? Почему не запускается proxyAccount xp_cmdshell когда установлено значение EXECUTE AS, но можно ли запустить его иначе?

1 ответ

Проблема была решена с помощью следующих шагов:

  1. Создание новой учетной записи, использующей проверку подлинности Windows (без проверки подлинности SQL Server)
  2. Установите эту новую учетную запись на прокси xp_cmdshell
  3. Предоставьте разрешение xp_cmdshell старому proxyAccount
Другие вопросы по тегам