sp_send_dbmail在SQL Server代理作业中失败

时间:2014-11-20 05:57:22

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

有人可以解释并解决以下问题。谢谢。

我在Windows Server 2012上的SQL Server 2012中运行时遇到此查询问题 查询(@query)在单独运行时运行良好,但在放入SQL Server代理作业时没有显示结果(见下文)。

@query = N'SELECT p.name AS [Name] FROM sys.server_principals r
INNER JOIN sys.server_role_members m ON r.principal_id = m.role_principal_id
INNER JOIN sys.server_principals p ON p.principal_id = m.member_principal_id
WHERE r.name = "sysadmin";' 

毫无疑问,当我在Windows Server 2008上运行的Sql Server 2012中进行测试时,它既可以完全独立运行,也可以在SQL Server Agent Job中运行!!

1 个答案:

答案 0 :(得分:0)

我找到了原因和解决方案。

它取决于授予运行SQL Server代理的帐户/用户的权限。此帐户必须至少具有securityadmin服务器角色才能访问数据库邮件配置文件,否则它将返回错误或根本不发送邮件。 要授予其必要的服务器角色,请转到安全性>登录以将该帐户添加为新登录,然后向其授予securityadmin服务器角色。

希望这可以帮助任何可能遇到与我相同问题的人。