为 SQL Server Agent 服务选择一个帐户

服务启动帐户可以定义运行 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 代理服务帐户不是本地 管理员 组的成员时,使用多服务器管理存在限制。 有关详细信息,请参阅本主题中的“支持的服务帐户类型”。

Windows 域帐户权限

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

  • 在所有 Windows 版本中,以服务身份登录的权限(SeServiceLogonRight)

注释

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

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

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

    • 替换进程级令牌的权限(SeAssignPrimaryTokenPrivilege)

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

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

注释

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

注释

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

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 代理”或“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 Configuration Manager)
实现 SQL Server 代理安全性