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

时间:2009-08-05 17:13:59

标签: sql sql-server replication sql-server-agent

我正在使用脚本创建SQL Server Replication。当我尝试执行

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)).

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

如何调试?

9 个答案:

答案 0 :(得分:36)

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

答案 1 :(得分: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之后工作完美无缺。这些作业与复制清理有关,但我不确定它们是手动添加还是作为复制设置的一部分添加 - 我没有参与其中,所以我不确定。

答案 2 :(得分:7)

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

如果计算机名称从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.

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

答案 3 :(得分:3)

在我的情况下,我在尝试使用SQL Server 2008 R2上的IS_ROLEMEMBER()函数时遇到此错误。此功能在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

明显更加冗长,但它完成了工作。

答案 4 :(得分:2)

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

我只是添加到此问题的核对表中:

  • 检查域控制器是否可访问

答案 5 :(得分:1)

我遇到了同样的问题,结果是由运行在AD中锁定的SQL服务的域登录引起的。锁定是由于服务帐户与其他用途密码错误无关而导致的。

从SQL代理日志收到的错误未提及服务帐户的名称,只提及无法进行身份验证的用户(作业所有者)的名称(因为它使用服务帐户检查AD)。

答案 6 :(得分:1)

我必须连接到VPN以获取发布脚本才能成功部署数据库。

答案 7 :(得分:0)

在我们的案例中,运行SQL Server和SQL Agent的Windows服务帐户被锁定在Active Directory中。

答案 8 :(得分:0)

我刚收到此错误,结果我的AD管理员删除了整个公司中每个SQL Server实例使用的服务帐户。谢天谢地,AD有自己的回收站。

查看是否可以运行 Active Directory用户和计算机实用程序(%SystemRoot%\ system32 \ dsa.msc),并检查以确保您依赖的帐户仍然存在。