次の方法で共有


OLE DB Provider for Microsoft Directory Services

Microsoft OLE DB Provider for Microsoft Directory Services は、Microsoft Windows 2000 Directory Service の情報へのアクセスを提供します。このプロバイダを使用してクエリで返すことのできるオブジェクトの最大数は 1000 個です。

Windows 2000 Directory Service に対してリンク サーバーを作成するには

  • 次のように、sp_addlinkedserver システム ストアド プロシージャの provider_name 引数に ADSDSOObject を、data_source 引数に adsdatasource を使用してリンク サーバーを作成します。

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

Windows 認証されたログインの場合、SQL Server の権限の委任を使用してディレクトリにアクセスするには、自己マッピングで十分です。sp_addlinkedserver を実行して作成されるリンク サーバー用に自己マッピングが既定で作成されるので、それ以外のログイン マッピングは必要ありません。

SQL Server 認証のログインの場合、sp_addlinkedsrvlogin システム ストアド プロシージャを使用してディレクトリ サービスに接続するために、適切なログインとパスワードを構成できます。

注意注意

可能な場合は、Windows 認証を使用します。

ディレクトリ サービスの照会

Microsoft OLE DB Provider for Microsoft Directory Services は、ディレクトリ サービスに照会するために LDAP と SQL という 2 つのコマンド言語をサポートしています。OPENQUERY 関数を使用すると、コマンドをディレクトリ サービスに送信して、その結果を SELECT ステートメントで使用することができます。

注意注意

Microsoft OLE DB Provider for Microsoft Directory Services では、Integration Services から直接の LDAP クエリをサポートしていません。代わりに、このトピックの後半で説明するように Microsoft Directory Services へのリンク サーバーを作成して OPENQUERY を使用するか、スクリプト タスクを使用します。例については、「スクリプト タスクによる Active Directory へのクエリの実行」を参照してください。

次の例では、ドメイン アドレスが sales.adventure-works.com の ADSISrv というサーバーのディレクトリから情報を返すために OPENQUERY を使用するビューを作成します。OPENQUERY 関数内のコマンドは、ディレクトリの特定の階層位置 (OU=Sales) にあるクラス contact に所属するオブジェクトの属性 Name、SN、ST を返すディレクトリに対する SQL クエリです。これで、ビューをすべての 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 サービスのマニュアルを参照してください。