在SQL SERVER 中通过ADSI接口查询活动目录AD信息!

活动目录或LDAP都是企业的基础架构,广泛应用于用户的组织和人员及权限,以此为基础可以实现SSO、统一身份认证等等。本文介绍一种通过SQL SERVER提供的ADSI接口查询AD,可以非常方便的查询AD的相关信息,并且查询速度很快,并可以做一些扩展应用,如开放给外部系统调用等,但这种方式的局限性在于需要安装和部署SQL Server。

本文给出一个简单的查询AD用户信息的示例,其中sectionoffice为自定义的AD扩展属性,具体代码如下:

EXEC sp_addlinkedsrvlogin 'ADSI', 'false', '数据库用户名', 'ad用户名', 'ad用户名称'


GO


SELECT objectGUID,ObjectCategory,officeroom,sectionoffice,userPrincipalName,displayname,department 
FROM OPENQUERY(ADSI, 'SELECT objectGUID,ObjectCategory,officeroom,sectionoffice,userPrincipalName,displayname,department FROM ''LDAP://portal.contoso.uat/OU=部门,DC=portal,DC=contoso,DC=uat'' WHERE objectClass=''Person'' AND objectClass=''User''')


GO

 执行结果如下:

 对于访问其他AD属性的方法也是如此,根据具体应用需求,都是可以直接通过SQL语句进行查询。

posted @ 2013-04-11 11:01  软件人生  阅读(2842)  评论(0编辑  收藏  举报