Sql server 2012 SQL Server代理作业中的sp_send_dbmail失败

Sql server 2012 SQL Server代理作业中的sp_send_dbmail失败,sql-server-2012,sql-server-agent,sql-server-job,Sql Server 2012,Sql Server Agent,Sql Server Job,有人能解释并解决以下问题吗。谢谢 我在Windows Server 2012上的SQL Server 2012中运行查询时遇到此问题。 查询(@query)在单独运行时运行得很好,但在放入SQLServer代理作业时(请参见下文)不会显示任何结果 老实说,当我在WindowsServer2008上运行的SQLServer2012中测试它时,它在单机版和SQLServer代理作业中都运行得非常好 我已经找到了原因和解决办法 它取决于向运行SQL Server代理的帐户/用户授予的权限。此帐户必须至

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

我在Windows Server 2012上的SQL Server 2012中运行查询时遇到此问题。
查询(@query)在单独运行时运行得很好,但在放入SQLServer代理作业时(请参见下文)不会显示任何结果


老实说,当我在WindowsServer2008上运行的SQLServer2012中测试它时,它在单机版和SQLServer代理作业中都运行得非常好

我已经找到了原因和解决办法

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

希望这能帮助那些可能遇到和我一样问题的人

@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";'