为 SQL Server 代理服务选择帐户

服务启动帐户可以定义运行 SQL Server 代理的 Microsoft Windows 帐户及其网络权限。 SQL Server 代理在指定的用户帐户下运行。 可以使用 SQL Server 配置管理器为 SQL Server 代理服务选择一个帐户,可选帐户如下:

  • 内置帐户。 可以从下列内置 Windows 服务帐户的列表中选择:

    • Local System 帐户。 此帐户的名称是 NT AUTHORITY\System。 它是一个功能强大的帐户,可以不受限制地访问所有本地系统资源。 它是本地计算机上的 Windows 管理员组的成员,因此是 SQL Server sysadmin 固定服务器角色的成员

      重要

      提供“Local System 帐户”选项只是为了向后兼容。 本地系统帐户具有 SQL Server 代理不需要的权限。 避免使用本地系统帐户运行 SQL Server 代理。 为了提高安全性,请使用具有下面部分“Windows 域帐户权限”中所列出权限的 Windows 域帐户。

  • 本帐户。 使你可以指定运行 SQL Server 代理服务的 Windows 域帐户。 建议选择非 Windows 管理员 组成员的 Windows 用户帐户。 但是,当SQL Server 代理服务帐户不是本地 Administrators 组的成员时,使用多服务器管理存在限制。 有关详细信息,请参阅本主题后面的“支持的服务帐户类型”。

Windows 域帐户权限

为了提高安全性,可以选择“本帐户”来指定 Windows 域帐户。 指定的 Windows 域帐户必须具有下列权限:

  • 在所有 Windows 版本中,作为服务登录的权限 (SeServiceLogonRight)

注意

SQL Server 代理 服务帐户必须是域控制器上 Windows 2000 之前的兼容访问组的一部分,否则不是 Windows 管理员组成员的域用户拥有的作业将失败。

  • 在 Windows 服务器中,SQL Server 代理服务运行的帐户需要以下权限才能支持SQL Server 代理代理。

    • 跳过遍历检查的权限 (SeChangeNotifyPrivilege)

    • 替换进程级别标记的权限 (SeAssignPrimaryTokenPrivilege)

    • 调整进程的内存配额的权限 (SeIncreaseQuotaPrivilege)

    • 使用批登录类型登录的权限 (SeBatchLogonRight)

备注

如果帐户不具有支持代理帐户所需的权限,则只有 sysadmin 固定服务器角色的成员才可创建作业。

备注

必须为 SQL Server 代理的服务帐户授予包含 WMI 事件的命名空间的权限以及 ALTER ANY EVENT NOTIFICATION 权限,才能接收 WMI 警报通知。

SQL Server 角色成员身份

运行 SQL Server 代理服务时使用的帐户必须是下列 SQL Server 角色的成员:

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

  • 若要使用多服务器作业处理,帐户必须是主服务器上 msdb 数据库角色 TargetServersRole 的成员。

支持的服务帐户类型

下表列出了可用于 SQL Server 代理服务的 Windows 帐户类型。

服务帐户类型 非聚集服务器 群集服务器 域控制器(非聚集)
Microsoft Windows 域帐户(Windows 管理员组的成员) 支持 支持 支持
Windows 域帐户(非管理) 支持1 支持1 支持1
网络服务帐户 (NT AUTHORITY\NetworkService) 支持1、3、4 不支持 不支持
本地用户帐户(非管理) 支持1 不支持 不适用
本地系统帐户 (NT AUTHORITY\System) 支持2 不支持 支持2
本地服务帐户 (NT AUTHORITY\LocalService) 不支持 不支持 不支持

1 请参阅下面的限制 1。

2 请参阅下面的限制 2。

3 请参阅下面的限制 3。

4 请参阅下面的限制 4。

限制 1:针对多服务器管理使用非管理帐户

目标服务器可能无法登记到主服务器,并出现以下错误信息:“登记操作失败”。

若要解决此错误,请重启 SQL Server 和 SQL Server 代理服务。 有关详细信息,请参阅 启动、停止、暂停、继续、重启 SQL Server 服务

限制 2:针对多服务器管理使用本地系统帐户

仅当主服务器和目标服务器位于同一台计算机中,并在本地系统帐户下运行 SQL Server 代理服务时,才支持多服务器管理。 如果使用此配置,则在将目标服务器登记到主服务器时返回以下消息:

“请确保 <target_server_computer_name> 的代理启动帐户拥有以 targetServer 身份登录的权限。”

您可以忽略此信息性消息。 登记操作将成功完成。 有关详细信息,请参阅 创建多服务器环境

限制 3:在网络服务帐户为 SQL Server 用户时使用该帐户

如果在网络服务帐户下运行 SQL Server 代理服务,并显式授予网络服务帐户以 SQL Server 用户身份登录到 SQL Server 实例的访问权限,则可能无法启动 SQL Server 代理。

为了解决此问题,请重新启动运行 SQL Server 的计算机。 此操作仅需执行一次。

限制 4:当同一台计算机中还运行有 SQL Server Reporting Services 时使用网络服务帐户

如果在网络服务帐户下运行 SQL Server 代理服务并且在同一台计算机中还运行 Reporting Services,则可能无法启动 SQL Server 代理。

若要解决此问题,请重新启动运行 SQL Server 的计算机,然后重启 SQL Server 和 SQL Server 代理服务。 此操作仅需执行一次。

常见任务

指定 SQL Server 代理服务的启动帐户

指定 SQL Server 代理的邮件配置文件

注意

使用 SQL Server 配置管理器可以指定启动操作系统时必须启动 SQL Server 代理。

另请参阅

配置 Windows 服务帐户和权限
管理服务操作指南主题(SQL Server 配置管理器)
实现 SQL Server 代理安全性