Назад | Перейти на главную страницу

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 с пакетом обновления 2 на компьютере с Windows Server 2008 R2 Enterprise.

Я установил TRUSTWORTHY = ON в базе данных и SP без проблем выполнялся очередью сообщений.

Спасибо !!