Сбой задания SQL Server 2012 - отправка электронной почты
Проведя некоторые исследования здесь и в других местах и попробовав несколько попыток устранения неполадок, я пришел к вам, хорошие люди, за помощью.
В SQL Server 2012 у меня есть работа с (в настоящее время) только одним шагом. Этот шаг выглядит примерно так:
EXEC msdb.dbo.sp_send_dbmail
@profile_name = 'SomeProfile',
@recipients = 'MyEmailAddress@someplace.com',
@subject = 'Some Subject',
@query = N'SELECT somedata FROM sometable WHERE something = true,
@attach_query_result_as_file = 1,
@query_attachment_filename = 'Weekly_Data.txt'
На вкладке "Общие" задания владелец является пользователем God-Mode sql. Должен иметь неограниченные привилегии.
На этом этапе раскрывающийся список "Запуск от имени" пуст. Я понятия не имею, как это изменить.
В приведенном выше коде шага @profile_name я попробовал две вещи. Когда я предпринял попытку "отправить тестовое сообщение" с помощью компонента Database Mail в Management Studio, все работало хорошо, и пользователь, который он использовал, был, скажем, "USERX". Я установил Мастер почты базы данных с помощью, скажем, "USERY". Я попытался изменить @profile_name на USERX и USERY без видимых различий.
Вот ошибка, которую я получаю. Это сбивает с толку, потому что я (сознательно) не просил его использовать этого пользователя: Выполнено от имени пользователя: NT AUTHORITY\SYSTEM. Неверное имя профиля
Я попробовал несколько вещей. В профиле безопасности в мастере Database Mail единственным видимым пользователем является USERX (тест, успешно использованный для отправки почты, как описано выше). USERY не появляется. Я пробовал в мастере Database Mail, в View Change и т. Д. Account, повозившись там. Единственный пользователь, который появляется здесь, это USERY! Нет USERX! Я очень смущен. Я попытался установить USERY SMTP auth для Windows, Basic и Anonymous безрезультатно.
Я прочитал, что вам нужно настроить в Profile Security различных пользователей, таких как NT AUTHORITY \ SYSTEM, но это также не отображается, равно как и NETWORK.
Любые предложения приветствуются и очень ценятся.
РЕДАКТИРОВАТЬ: АГА! USERX - ПРОФИЛЬ, USERY - УЧЕТНАЯ ЗАПИСЬ... оба в порядке. Тестовое письмо использовало профиль USERX в учетной записи USERY. Поэтому я думаю, мне нужно установить USERX в качестве @profile_name, но это не решает проблему. Он по-прежнему использует NT AUTHORITY \ SYSTEM по некоторым причинам.
1 ответ
Я дурак. В ШАГЕ я сказал ему использовать db, которую будет использовать запрос select, а не msdb. Теперь это работает.