PRB:SQL Server 代理无法启动并显示错误 18456

本文已归档。它按“原样”提供,并且不再更新。
症状
SQL Server 代理服务无法启动,同时您可能会在 Windows 事件查看器中看到以下错误信息:
SQLServerAgent could not be started (reason:Unable to connect to server; SQLServerAgent cannot start).
另外,如果试图从命令行启动 SQL Server 代理服务(例如,C:\MSSQL7\BINN\>sqlagent -c –v),也可能在 C:\MSSQL7\LOG\SQLAGENT.OUT 文件中看到以下错误信息:
7/13/99 2:07:43 PM - ?[129] SQLServerAgent starting under Windows NT service control
7/13/99 2:07:43 PM - ![298] SQLServer Error:18456, Login failed for user 'DomainName\UserName'.[SQLSTATE 28000]
7/13/99 2:07:43 PM - ![000] Unable to connect to server; SQLServerAgent cannot start
7/13/99 2:07:44 PM - ?[098] SQLServerAgent terminated (normally)
原因
BUILTIN\Administrators 登录没有访问 SQL Server 的权限或 BUILTIN\Administrators 登录已从 SQL Server 中删除,而 SQLAgent 服务正在 LocalSystem 帐户下启动。

如果 SQLAgent 服务在 SQL Server 企业管理器中单独列出的一个域帐户下或计算机帐户下启动,并且此帐户具有系统管理员 (sysadmin) 权限,则不会发生该问题。
替代方法
要将 BUILTIN\Administrators 帐户重新添加到 SQL Server 中,请启动 SQL 企业管理器。进入 \Servername\Security\Logins 并向 BUILTIN\Administrators 用户授予访问权限。

如果确实要拒绝 Windows NT 管理员对 SQL Server 的访问,可以删除 BUILTIN\Administrators 帐户。首先,将用于 SQL 代理服务的登录帐户作为 SQL Server 登录帐户来添加,并为该帐户分配系统管理员 (sa) 角色。然后从 BUILTIN\Administrators 帐户调用系统管理员 (sysadmin) 角色,或从 SQL 企业管理器中的 Logins 彻底删除 BUILTIN\Administrators 帐户。

有关其他信息,请参阅“SQL Server 联机图书”中的主题“查看和修改角色成员”;您可以通过访问以下 MSDN 网站查看此主题:
更多信息
注意,当通过单击“控制面板”然后选择服务运行服务时,将不会出现任何提示性的错误信息。您必须查看 Windows 事件查看器或在命令提示符下启动服务才能查看这些消息。
sqlagent sql agent security
属性

文章 ID:237604 - 上次审阅时间:12/05/2015 15:16:26 - 修订版本: 1.1

  • kbnosurvey kbarchive kbsqldeveloper kbprb KB237604
反馈