0

在这里和其他地方做了一些研究,并尝试了一些故障排除尝试后,我向你们寻求帮助。

在 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 用户。应该有无限的特权。

在该步骤上,Run As 下拉菜单为空。我不知道如何改变这一点。

在上面的步骤代码中,@profile_name,我尝试了两件事。当我在 Management Studio 中使用数据库邮件尝试“发送测试消息”时,一切正常,它使用的用户是,我们会说,“USERX”。我使用“USERY”设置数据库邮件向导。我尝试将@profile_name 更改为 USERX 和 USERY,但没有明显差异。

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

我已经尝试了几件事。在 Database Mail 向导下的 Profile Security 中,唯一可见的用户是 USERX(测试成功用于发送邮件的用户,如上所述)。USERY 没有出现。我在数据库邮件向导中尝试过,在查看更改等帐户下,在那里修修补补。唯一出现在这里的用户是USERY!没有用户!我很困惑。我尝试将 USERY SMTP auth 设置为 windows、basic 和 Anonymous 无济于事。

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

任何建议都非常受欢迎,非常感谢。

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

4

1 回答 1

0

我是一个傻瓜。在步骤中,我告诉它使用选择查询将使用的数据库,而不是 msdb。现在可以了。

于 2015-05-12T17:03:23.500 回答