Microsoft Directory Service 的 OLE DB 提供者

Microsoft OLE DB Provider for Microsoft Directory Services 提供存取 Microsoft Windows 2000 Directory Service 中的資訊。使用此提供者的查詢所能傳回的物件數目上限是 1000 個。

針對 Windows 2000 Directory Service 建立連結伺服器

  • 使用 ADSDSOObject 作為 provider_name 以及 adsdatasource 作為 sp_addlinkedserver 系統預存程序的 data_source 引數,例如:

    EXEC sp_addlinkedserver 'ADSI', 'Active Directory Services 2.5', 
    'ADSDSOObject', 'adsdatasource'
    GO
    

對於 Windows 驗證登入,只要使用 SQL Server Security Delegation,自我對應 (Self-mapping) 便足以存取目錄。因為預設將針對執行 sp_addlinkedserver 所建立的連結伺服器而建立自我對應,所以您不再需要其他的登入對應。

對於 SQL Server 驗證登入,您可使用 sp_addlinkedsrvlogin 系統預存程序來設定合適的登入/密碼,以便連線至目錄服務。

[!附註]

可能的話,請使用「Windows 驗證」。

查詢目錄服務

Microsoft OLE DB Provider for Microsoft Directory Services 可支援使用兩個命令用語 LDAP 與 SQL 來查詢 Directory Service。OPENQUERY 函數可用來傳送指令給 Directory Service,並在 SELECT 陳述式內消耗它的結果。

[!附註]

Microsoft OLE DB Provider for Microsoft Directory Services 不直接從 Integration Services 中支援 LDAP 查詢,而是建立 Microsoft Directory Services 的連結伺服器並使用 OPENQUERY (如本主題所述),或者使用指令碼工作。如需範例,請參閱<以指令碼工作查詢 Active Directory>。

下列範例顯示使用 OPENQUERY 來建立檢視,以傳回伺服器 ADSISrv 目錄的資訊,它的網域位址是 sales.adventure-works.com。在 OPENQUERY 函數中的命令是針對目錄所進行的 SQL 查詢,用以傳回物件的 Name、SN 以及 ST 屬性,這些物件是屬於目錄中指定階層位置 (OU=Sales) 的 contact 類別。檢視可用於任何 SQL Server 查詢。

CREATE VIEW viewADContacts 
AS
SELECT [Name], SN [Last Name], ST State
FROM OPENQUERY( ADSI, 
   'SELECT Name, SN, ST
   FROM ''LDAP://ADSISrv/ OU=Sales,DC=sales,DC=adventure-works,DC=com''
   WHERE objectCategory = ''Person'' AND
      objectClass = ''contact''')
GO
SELECT * FROM viewADContacts

如需有關 LDAP 與 SQL 用語的詳細資訊,請參閱 Microsoft Active Directory Services 文件。