把OU中的用户信息当作数据视图使用

Trond Hindenes教给我们一个很方便的方法把保存在AD中的OU用户信息当作数据库视图使用,你可以很方便的使用OU信息,比如建立企业通讯录、开发和其他系统帐号同步程序等。那么让我们仔细看看实现的途径吧:

首先,你需要在数据库中建立一个链接服务器,打开SQL Server Enterprise Manager Console,展开Security节点,然后是Linked Servers,右键New Linked Server…。在Linked Server文本框中输入一个ADSIProvider name选择OLE DB Provider for Microsoft Directory ServicesOK,关闭对话框。

然后建立一个新数据库也叫ADSI吧。建立一个View,其内容是:

SELECT
    sAMAccountname 
AS AccountName,
    GivenName 
AS [First Name],
    SN 
AS [Last Name],
    mail 
AS [E-mail Address],
    TelephoneNumber 
AS [Telephone Number],
    l 
AS Office,
    PostalAddress 
AS [Postal Address],
    PostalCode,
    StreetAddress 
AS [Street Address],
    wWWHomePage 
AS [Web Page],
    distinguishedname 
AS DN 
FROM
    
OPENQUERY(
        ADSI,
        
'SELECT GivenName, SN, company, department, TelephoneNumber, mail, distinguishedname, title, l, manager, mobile, name, PhysicalDeliveryOfficeName, PostalAddress, PostalCode, sAMAccountname, StreetAddress, wWWHomePage FROM ''LDAP://portalcn.com/ OU=Norway ,DC=portalcn,DC=com'' WHERE objectCategory = ''Person'' AND objectClass = ''user'' ORDER BY Name'
    ) Rowset_1

  其中要修改几个位置,LDAP://AD名称/ OU=OU名称, DC=AD名称, DC=com。如果OU是层级结构的,并且希望只取某个子层次中的用户,则可以用OU=上级OU名称, OU=OU名称,以此类推。

一切就是这么简单,后面的工作就不叙述了,基于数据库视图的编程应该很简单了。

posted on   Microtoby  阅读(1466)  评论(0编辑  收藏  举报

编辑推荐:
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
阅读排行:
· 单线程的Redis速度为什么快?
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 展开说说关于C#中ORM框架的用法!
· SQL Server 2025 AI相关能力初探
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库

导航

< 2004年12月 >
28 29 30 1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31 1
2 3 4 5 6 7 8
点击右上角即可分享
微信分享提示