代码之家  ›  专栏  ›  技术社区  ›  David Neale

使用SQLServer2005通过LDAP访问Active Directory角色成员身份

  •  1
  • David Neale  · 技术社区  · 16 年前

    我有这个临时文件来存储信息:

    DROP TABLE #ADUSERGROUPS
    CREATE TABLE #ADUSERGROUPS 
    (
    sAMAccountName varchar(30),
    UserGroup varchar(50)
    )
    

    每个组/用户关联应为一行。

    这是我的选择声明:

    SELECT sAMAccountName,memberOf
    FROM OpenQuery(ADSI, '<LDAP://hqdc04/DC=nt,DC=avs>;
                    (&(objectClass=User)(sAMAccountName=9695)(sn=*)(mail=*)(userAccountControl=512));
                    sAMAccountName,memberOf;subtree')
    

    我得到这个错误消息:

    消息7346,16级,状态2,行2 无法从OLE DB提供程序“ADSDSOObject”获取行的数据。由于符号不匹配或溢出以外的原因,无法转换数据值。

    1 回复  |  直到 16 年前
        1
  •  0
  •   Community Mohan Dere    9 年前

    看起来这是一个无法直接克服的限制:- TSQL: How to get a list of groups that a user belongs to in Active Directory . OpenQuery无法处理多值属性。

    我最后写了一个.NETCLR作业来处理这个问题。

    推荐文章