Bug #:413203(SQLBUDT)

症状

如果你运行的 SQL Server 代理作业的步骤配置为 "运行方式" 为指定的代理帐户,则你可能会在作业历史记录中收到以下错误消息:

错误:作为用户执行: " \帐户"。 无法创建进程的步骤 步骤编号 " 唯一作业 ID " (原因:客户端未持有所需权限)。 步骤失败。

此错误消息可能通常会影响以下作业步骤类型:

  • 操作系统(CmdExec)作业步骤

  • SQL Server Integration Services 程序包作业步骤

  • 复制作业步骤类型作业步骤

此外,当你尝试运行复制代理作业时,复制代理作业可能失败,并且你可能会收到类似于以下内容的错误消息:

以用户身份执行: <UserAccount>。 复制复制快照子系统:代理 <AgentName> 失败。 以用户身份执行: <UserAccount>。 客户端未持有所需的权限。 步骤失败。 [SQLSTATE 42000](错误14151)。 步骤失败。

原因

出现此问题的原因是 Windows 服务控制管理器无法将运行代理作业所需的权限授予新域帐户。SQL Server 配置管理器除了更改服务帐户或密码之外,还需要执行其他步骤。 这些步骤会将服务帐户添加到提供必要权限的相应组成员身份。当 SQL Server 代理服务帐户没有所需的操作系统权限以在代理帐户的上下文中生成必要的子进程时,你将收到 "症状" 部分中提及的第二条错误消息。 注意 此错误消息通常不是由代理帐户本身导致的,而是由尝试模拟代理帐户的 SQL Server 代理服务帐户所导致。 SQL Server 代理服务帐户缺少执行模拟所需的权限。

解决方案

若要解决此问题,请使用 SQL Server 配置管理器将域帐户更改回启动帐户。 然后,使用 SQL Server 配置管理器将启动帐户更改为域帐户。 执行此操作时,SQL Server 配置管理器会将域帐户添加到以下安全组:

SQLServer2005SQLAgentUser$ComputerName$InstanceName因此,SQL Server 配置管理器将向域帐户授予运行代理作业所需的权限。若要解决此问题,请按照下列步骤操作:

  1. 在 SQL Server 配置管理器中将 SQL Server 代理服务帐户设置为 LocalSystem 帐户。

  2. 停止并启动 SQL Server 代理服务。

  3. 将 SQL Server 配置管理器中的 SQL Server 代理服务帐户重置回原始帐户。

  4. 停止并启动 SQL Server 代理服务。

您也可以在 SQL Server 配置管理器中重置 SQL Server 代理服务帐户的密码。 为了避免将来出现此问题,我们建议你使用 SQL Server 配置管理器而不是 Windows 服务控制管理器来修改启动帐户。有关如何更改 SQL Server 服务帐户的详细信息,请访问以下 Microsoft 网站:

状态

Microsoft 已确认这是在“适用范围”部分中列出的 Microsoft 产品存在的问题。

更多信息

对于 SQL Server 2005,以下用户组由 SQL Server 安装程序创建:

  • 默认实例: SQLServer2005SQLAgentUser $ ComputerName $ MSSQLSERVER

  • 命名实例: SQLServer2005SQLAgentUser $ ComputerName $ InstanceName

对于 SQL Server 2008,以下用户组由 SQL Server 安装程序创建:

  • 默认实例: SQLServerSQLAgentUser $ ComputerName $ MSSQLSERVER

  • 命名实例: SQLServerSQLAgentUser $ ComputerName $ InstanceName

这些组具有允许模拟代理帐户的相应权限。有关 SQL Server 代理服务帐户所需权限的详细信息,请访问以下 Microsoft 网站:

需要更多帮助?

扩展你的技能
了解培训
抢先获得新功能
加入 Microsoft 内部人员

此信息是否有帮助?

你对语言质量的满意程度如何?
哪些因素影响了你的体验?

谢谢您的反馈!

×