我从Sql Server 2012获取以下事件日志条目:
SQL Server计划作业“复制代理检查” – 状态:失败 – 调用date:2012-08-04 10:00:00 – 消息:作业失败。 无法确定作业Replication Agent检查的所有者(AD \ Administrator)是否具有服务器访问权限(原因:无法获取有关Windows NT组/用户AD \ Administrator的信息,错误代码为0x6e [SQLSTATE 42000](错误15404) )。
我假设这是因为Sql Server 2012使用虚拟帐户,无法检索它所需要的活动目录信息。 从Sql Server 2012文档 :
Windows Server 2008 R2和Windows 7中的虚拟帐户是托pipe本地帐户,提供以下function以简化服务pipe理。 虚拟账户是自动pipe理的,虚拟账户可以在域环境下访问networking。 如果在Windows Server 2008 R2或Windows 7上的SQL Server安装过程中为服务帐户使用默认值,则使用使用实例名称作为服务名称的虚拟帐户,格式为NT SERVICE \(SERVICENAME)。 作为虚拟帐户运行的服务通过以格式(domain_name)\(computer_name)$使用计算机帐户的凭据来访问networking资源。
所以,问题是:如何在(domain_name)\(computer_name)$ user的域控制器中创build权限,以及我需要为Sql Server 2012授予哪些权限才能检索其所需的信息? 或者,我是否需要切换到托pipe服务帐户才能正常工作? 或者,我应该把工作的主人换成别的东西吗?
默认情况下,服务帐户将能够查看域并根据需要进行查询。
这是一个偶尔出现的问题。 将作业所有者更改为sa,然后单击确定。 然后将其更改回AD \ Administrator并单击确定。 下一次作业运行应该运行良好。
我试了另外两个答案,但都没有帮助我的情况。 最终,我能够完成这项工作的唯一方法是从虚拟帐户(VA)切换到托pipe服务帐户(MSA),如此处和此处所述 。
另外,我无法使事务复制与VA或MSA一起工作 – 在这两种情况下,作业历史logging日志总是显示validation错误。 最终我恢复到使用一个正常的域用户的各种复制代理,它的工作。
validation计算机networking服务帐户是否有权读取AD组。 我认为在AD环境下最好使用MSA账户而不是虚拟账户。