SQL Server 2012作业失败 - 发送电子邮件

时间:2015-05-12 15:11:43

标签: sql sql-server-2012 sql-server-agent sql-job database-mail

在这里和其他地方做了一些研究,并尝试了一些故障排除尝试后,我来找你们好帮忙。

在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,我尝试了两件事。当我在Management Studio中使用数据库邮件进行“发送测试消息”尝试时,一切正常,并且它使用的用户是,我们会说'USERX'。我设置了数据库邮件向导,我们会说,“USERY”。我尝试将@profile_name更改为USERX和USERY,没有明显的差异。

这是我得到的错误。这令人困惑,因为我没有(明知)要求它使用此用户:作为用户执行:NT AUTHORITY \ SYSTEM。个人资料名称无效

我尝试了一些事情。在“数据库邮件”向导下的“配置文件安全性”中,唯一可见的用户是USERX(测试成功用于发送邮件的用户,如上所述)。 USERY没有显示出来。我尝试了数据库邮件向导,在查看更改等帐户下,在那里修修补补。这里出现的唯一用户是USERY!没有USERX!我很困惑。我尝试将USERY SMTP auth设置为windows,basic和Anonymous无济于事。

我读到您需要在Profile Security中设置各种用户,例如NT AUTHORITY \ SYSTEM,但这些用户也没有显示,NETWORK也没有显示。

欢迎任何建议,并非常感激。

编辑:AHA! USERX是个人资料,USERY是一个帐户......两个都很好。测试电子邮件使用USERY帐户下的USERX配置文件。所以我想我需要将USERX设置为@profile_name,但这不能解决问题。由于某种原因,它仍然使用NT AUTHORITY \ SYSTEM。

1 个答案:

答案 0 :(得分:0)

我是个傻瓜。在STEP中,我告诉它使用select查询将使用的db,而不是msdb。它现在有效。