Хранимая процедура с 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 ответ
Проблема была решена с помощью следующих шагов:
- Создание новой учетной записи, использующей проверку подлинности Windows (без проверки подлинности SQL Server)
- Установите эту новую учетную запись на прокси xp_cmdshell
- Предоставьте разрешение xp_cmdshell старому proxyAccount