SP с xp_cmdshell выдает ошибку в MessageQueue, но успешно выполняется в Management Studio
У меня есть ИП, который звонит xp_cmdshell
в этом. Этот SP используется в MessageQueue.
Службы сервера SQL и агента настраиваются с использованием учетной записи службы домена, и эта учетная запись службы также имеет имя входа под ролью сервера sysadmin.
Когда вызывается MessageQueue, SP возвращает следующее исключение:
Информация учетной записи прокси-сервера xp_cmdshell не может быть получена или недействительна. Убедитесь, что учетные данные '##xp_cmdshell_proxy_account##' существуют и содержат действительную информацию.
Но когда я выполняю SP в SSSMS, под учетной записью службы (которая является системным администратором), он успешно выполняется.
Я даже создал ##xp_cmdshell_proxy_account##
учетные данные, но очередь сообщений не перестает выдавать эту ошибку.
Вот так выглядит очередь:
CREATE QUEUE [dbo].[TestxmCmdshellQueue]
WITH STATUS = ON ,
RETENTION = OFF ,
ACTIVATION ( STATUS = ON ,
PROCEDURE_NAME = [dbo].[SpWithxp_cmdshell_Init] ,
MAX_QUEUE_READERS = 5 ,
EXECUTE AS N'dbo' ),
POISON_MESSAGE_HANDLING (STATUS = OFF)
Учетная запись службы также настраивается в качестве локального администратора на локальном сервере.
Владелец базы данных "Sa"
Я использую SQL Server 2008 R2 Sp2 на компьютере под управлением Windows Server 2008 R2 Enterprise.
1 ответ
Я сделал TRUSTWORTHY = ON в базе данных и SP без проблем выполнил очередь сообщений.
Спасибо!!