这是一个常规错误,不管是否进行复制,都会引发该错误。对于复制拓扑中的服务器,引发该错误的原因通常是使用 Microsoft Windows 服务控制管理器,而不是 SQL Server 配置管理器来更改 SQL Server 代理服务帐户。当您在更改服务帐户后尝试运行代理作业时,作业可能会失败,并显示类似如下的错误消息:
“已以用户 <UserAccount> 的身份执行。复制-复制快照子系统:代理 <AgentName> 失败。已以用户 <UserAccount> 的身份执行。客户端没有所需的特权。该步骤失败。[SQLSTATE 42000](错误 14151)。该步骤失败。”
出现此问题的原因是 Windows 服务控制管理器无法向 SQL Server 代理的新服务帐户授予所需权限。
解决方法:
为了避免以后再出现此问题,请始终使用 SQL Server 配置管理器而非 Windows 服务控制管理器来更改服务帐户和密码。
若要解决此问题,请使用 SQL Server 配置管理器将服务帐户更改为原始帐户。然后,使用 SQL Server 配置管理器更改为新帐户。执行此操作时,SQL Server 配置管理器会将新帐户添加到以下安全组中:
SQLServer2008SQLAgentUser$ComputerName$InstanceName
成为此安全组的成员,便可以向新帐户授予运行复制代理作业所需的权限。
--服务帐户的修改,一定要在配置管理器中进行。