使用域帐户配置 SQL Server 代理仍然无法启动代理

使用域帐户配置 SQL Server 代理仍然无法启动代理

我正在尝试遵循 Sharepoint 2010 安装的最佳实践,但 SQL Server Agent 无法启动。我的第一个参考是:

使用最小权限服务帐户安装 SharePoint 2010

简而言之,我使用域帐户启动 MSSQLSERVER 本身以及 SQLSERVERAGENT 服务。正如他建议的那样(也就是说,我正在使用myDomain\SQLsrvcs

这是代理失败时的错误日志(SQLAGENT.OUT):

2011-06-07 15:06:02 - ! [298] SQLServer Error: 15247, User does not have permission to perform this action. [SQLSTATE 42000] (DisableAgentXPs)
2011-06-07 15:06:02 - ! [298] SQLServer Error: 229, The EXECUTE permission was denied on the object 'sp_sqlagent_has_server_access', database 'msdb', schema 'dbo'. [SQLSTATE 42000] (ConnIsLoginSysAdmin)
2011-06-07 15:06:02 - ! [298] SQLServer Error: 229, The EXECUTE permission was denied on the object 'sp_sqlagent_get_startup_info', database 'msdb', schema 'dbo'. [SQLSTATE 42000] 
2011-06-07 15:06:02 - ! [298] SQLServer Error: 229, The INSERT permission was denied on the object 'syssessions', database 'msdb', schema 'dbo'. [SQLSTATE 42000] 
2011-06-07 15:06:02 - ! [000] Error creating a new session
2011-06-07 15:06:02 - ? [098] SQLServerAgent terminated (normally)

MSSQLSERVER 启动正常,但代理失败,如上所示。“Sharepoint George”的建议并未表明 SQL 实例需要 LOGIN(而且我读到“最小权限”消息时,它不应该有该权限)。

然而,这里还有另一个地方给出了建议:

为 SQL Server 代理服务选择帐户

在本文中,Microsoft 指出:“运行 SQL Server 代理服务的帐户必须是以下 SQL Server 角色的成员:

该帐户必须是 sysadmin 固定服务器角色的成员。”

我不知道如何在不先将此域帐户添加为 LOGIN 的情况下使其成为 sysadmin 角色的成员 - 但这似乎违背了第一位专家的指导。

我肯定遗漏了什么,或者推断了不该推断的东西。请为这些 SQL 服务帐户提供最佳实践(尤其是当 Sharepoint 2010 将安装在同一台服务器上时)。谢谢。

答案1

这与 SharePoint 无关,而与 SQL Server 有关。

SQL Server 代理服务有效运行的帐户需求对其运行的 SQL Server 实例拥有完全的系统管理员访问权限,因为它的角色是在该实例及其数据库上执行作业。

如果您使用 SQL Server 配置管理器选择代理的服务帐户,则会自动授予访问权限和权限(以及所需的“作为服务登录”Windows 权限)。

如果您通过手动编辑服务的属性来选择它,则需要手动授予它们。

选择代理的服务帐户的推荐方法是通过配置管理器。

相关内容