У меня есть ИП, который звонит 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 без проблем выполнялся очередью сообщений.
Спасибо !!