Я запланировал задание в агенте SQL Server, которое отправляет результат запроса по электронной почте. Если я выполняю хранимую процедуру из SSMS, она работает нормально. Но агент SQL Server не может отправлять электронные письма.
Вот полученная мной ошибка.
Следующая учетная запись запланирована как владелец агента SQL Server в диспетчере конфигурации SQL Server: NT AUTHORITY \ NETWORK SERVICE.
Что я могу сделать, чтобы назначить этому пользователю права?
Сообщение
Выполняется как пользователь: NT AUTHORITY \ NETWORK SERVICE. Ошибка форматирования запроса, возможно, неверные параметры [SQLSTATE 42000] (Ошибка 22050). Шаг не удался.
Вы также можете попробовать предоставить доступ к xp_sysmail_format_query
к NT AUTHORITY\NETWORK SERVICE
:
USE master
--Create user in master if necessary
CREATE USER [nt authority\system] FOR LOGIN [nt authority\system]
GO
--Grant execute to the stored procedure that's failing
GRANT EXECUTE ON [xp_sysmail_format_query] TO [NT AUTHORITY\NETWORK SERVICE]
GO
Однако лучше всего запустить службу агента SQL в контексте пользователя домена, который имеет соответствующий доступ к вашим сетевым ресурсам. Это намного проще, чем использование локальных учетных записей.