无法获取有关Windows NT组用户的信息

Raj*_*ore 39 sql sql-server replication sql-server-agent

我正在使用脚本创建SQL Server复制.当我尝试执行时

The job failed. Unable to determine if the owner (STAR\moorer7) of job L3BPT2M-Atlas-14 has server access (reason: Could not obtain information about Windows NT group/user 'STAR\moorer7', error code 0x5. [SQLSTATE 42000] (Error 15404)).

这是由定义复制的脚本创建的作业.

我该如何调试?

Rem*_*anu 36

Active Directory拒绝访问您的SQL代理.代理应在STAR域控制器识别的帐户下运行.

  • @Raj:实际上,因为连接到AD的SQL Server本身,您需要更改运行SQL的帐户.它必须是AD将进行身份验证的帐户,例如域帐户或NETWORK SERVICE帐户(前提是计算机已加入域).SSMS或EM可以选择更改服务帐户. (8认同)
  • +1让我不必与我的dba交谈(保存几个小时) (2认同)
  • Brent Ozar建议(当然要小心)SQL Server代理作业由SA拥有,因为所有者对作业的运行方式并不重要,直到由于所有者被删除或未经过身份验证而失败.见这里:http://www.brentozar.com/blitz/jobs-owned-by-user-accounts/.服务帐户是下一个最好的事情,只要你配置正确,它永远不会被锁定或禁用. (2认同)

Cra*_*ste 8

我们在虚拟机的测试环境中遇到类似的错误.如果计算机名称因模板中的VM克隆而更改,则可能会出现此错误.

如果计算机名称从OLD更改为NEW.

作业使用此存储过程:

msdb.dbo.sp_sqlagent_has_server_access @login_name = 'OLD\Administrator'
Run Code Online (Sandbox Code Playgroud)

哪个使用这个:

EXECUTE master.dbo.xp_logininfo 'OLD\Administrator'
Run Code Online (Sandbox Code Playgroud)

这给出了这个SQL错误15404

select text from sys.messages where message_id = 15404;
Could not obtain information about Windows NT group/user '%ls', error code %#lx.
Run Code Online (Sandbox Code Playgroud)

在这种情况下,我认为这是正确的.我们在VM克隆/部署过程中添加了一个脚本,用于重新创建SQL登录.


Der*_*ean 8

对我来说,作业在DOMAIN\Administrator下运行并且失败并显示错误消息"The job failed. Unable to determine if the owner (DOMAIN\administrator) of job Agent history clean up: distribution has server access (reason: Could not obtain information about Windows NT group/user 'DOMAIN\administrator', error code 0x5. [SQLSTATE 42000] (Error 15404)).为了解决这个问题,我将每个失败作业的所有者更改为sa.之后工作完美无缺.这些作业与复制清理有关,但我不确定它们是手动添加还是作为复制设置的一部分添加 - 我没有参与其中,所以我不确定.