0

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

我在 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 代理作业中都完美运行!!?

4

1 回答 1

0

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

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

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

于 2014-11-25T00:29:01.400 回答