为 SQL Server 代理服务选择帐户

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

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

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

      安全说明安全说明

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

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

Windows 域帐户权限

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

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

SQL Server 代理服务帐户必须是域控制器上 Pre-Windows 2000 Compatible Access 组的一部分,否则,非 Windows Administrators 组成员的域用户拥有的作业将失败。

  • 在 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 Administrators 组的成员)

支持

支持

支持

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 Browser 服务

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

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

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

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

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

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

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

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

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

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

常见任务

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

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

注意注意

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

请参阅

参考

配置 Windows 服务帐户和权限

概念

实现 SQL Server 代理安全性

其他资源

管理服务操作指南主题(SQL Server 配置管理器)