无法获取有关Windows NT组用户信息(Could not obtain information

2019-07-31 11:21发布

我创建使用脚本一个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)).

这是由定义复制的脚本创建工作。

如何调试呢?

Answer 1:

Active Directory的拒绝访问您的SQL代理。 代理应该由星域控制器识别的帐户下运行。



Answer 2:

对我来说,工作是在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之后准确无误地运行。该工作是有关复制清理,但我不能确定,如果他们手动添加或添加为复制建立的一部分 - 我没有参与,所以我不知道。



Answer 3:

我们在测试环境中遇到的一个虚拟机上类似的错误。 如果机器名称从模板虚拟机克隆的变化,由于,你可以得到这个错误。

如果计算机名从OLD变更为NEW。

作业使用这个存储过程:

msdb.dbo.sp_sqlagent_has_server_access @login_name = 'OLD\Administrator'

使用这种之一:

EXECUTE master.dbo.xp_logininfo 'OLD\Administrator'

这给这个SQL错误15404

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

我的猜测是正确的,在这种情况下。 我们增加了一个脚本到重新创建SQL登录的虚拟机克隆/部署过程。



Answer 4:

在我来说,我得到这个错误尝试使用IS_ROLEMEMBER() SQL Server 2008 R2上的功能。 这个功能是不是之前的SQL Server 2012中有效。

相反,这个功能我最终使用

select 1 
from sys.database_principals u 
inner join sys.database_role_members ur 
    on u.principal_id = ur.member_principal_id 
inner join sys.database_principals r 
    on ur.role_principal_id = r.principal_id 
where r.name = @role_name 
and u.name = @username

显著更详细的,但它能够完成任务。



Answer 5:

只要解决了这个问题。 在我的情况下,它是域控制器是无法访问的,因为这两个DNS服务器是谷歌DNS。

我刚加入清单,针对此问题:

  • 检查域控制器是可访问


Answer 6:

我也有同样的问题,这竟然是由运行SQL服务于公元被锁定域名注册引起的。 锁定由服务帐户与密码错误另一个目的无关的用途引起的。

从SQL Agent日志中收到的错误并没有提及该服务帐户的名称,用户(作业所有者)的只是名字不能被验证的(因为它使用的服务帐户检查与AD)。



Answer 7:

我有连接到VPN的发布脚本成功部署到数据库。



文章来源: Could not obtain information about Windows NT group user