代码之家  ›  专栏  ›  技术社区  ›  Raj More

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

  •  36
  • Raj More  · 技术社区  · 16 年前

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

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

    如何调试这个?

    7 回复  |  直到 8 年前
        1
  •  36
  •   magnattic    11 年前

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

        2
  •  8
  •   Derreck Dean    8 年前

    对于我来说,作业是在域\管理员下运行的,失败并显示错误消息 "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 . 在那之后工作得很完美。这些作业与复制清理相关,但我不确定它们是手动添加的还是作为复制设置的一部分添加的-我不参与,因此我不确定。

        3
  •  7
  •   Craig Celeste    13 年前

    在虚拟机上的测试环境中,我们遇到了类似的错误。如果由于从模板克隆虚拟机而导致计算机名更改,则可能会出现此错误。

    如果计算机名称从旧更改为新。

    作业使用此存储过程:

    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登录。

        4
  •  3
  •   Raj More    12 年前

    在我的情况下,尝试使用 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
    

    明显更详细,但它可以完成任务。

        5
  •  2
  •   Rail    11 年前

    刚刚解决了这个问题。在我的例子中,域控制器是不可访问的,因为这两个DNS服务器都是google-dns。

    我只是在这个问题的清单中添加了:

    • 检查域控制器是否可访问
        6
  •  1
  •   mniles    10 年前

    我也遇到了同样的问题,这是由于运行SQL服务的域登录被锁定在AD中造成的。锁定是由于使用了错误密码的服务帐户用于其他目的而导致的。

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

        7
  •  1
  •   Pete    10 年前

    为了成功部署数据库,我必须连接到发布脚本的VPN。