我正在尝试遵循 Sharepoint 2010 安装的最佳实践,但 SQL Server Agent 无法启动。我的第一个参考是:
简而言之,我使用域帐户启动 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(而且我读到“最小权限”消息时,它不应该有该权限)。
然而,这里还有另一个地方给出了建议:
在本文中,Microsoft 指出:“运行 SQL Server 代理服务的帐户必须是以下 SQL Server 角色的成员:
该帐户必须是 sysadmin 固定服务器角色的成员。”
我不知道如何在不先将此域帐户添加为 LOGIN 的情况下使其成为 sysadmin 角色的成员 - 但这似乎违背了第一位专家的指导。
我肯定遗漏了什么,或者推断了不该推断的东西。请为这些 SQL 服务帐户提供最佳实践(尤其是当 Sharepoint 2010 将安装在同一台服务器上时)。谢谢。
答案1
这与 SharePoint 无关,而与 SQL Server 有关。
SQL Server 代理服务有效运行的帐户需求对其运行的 SQL Server 实例拥有完全的系统管理员访问权限,因为它的角色是在该实例及其数据库上执行作业。
如果您使用 SQL Server 配置管理器选择代理的服务帐户,则会自动授予访问权限和权限(以及所需的“作为服务登录”Windows 权限)。
如果您通过手动编辑服务的属性来选择它,则需要手动授予它们。
选择代理的服务帐户的推荐方法是通过配置管理器。