次の方法で共有


汎用 SQL コネクタのステップ バイ ステップ

このトピックは、ステップ バイ ステップ ガイドです。 簡単なサンプル HR データベースを作成し、一部のユーザーとそのグループ メンバーシップをインポートするために使用します。

Microsoft Entra ID では、MIM 同期のデプロイを必要とせずに、ユーザーを SQL データベースにプロビジョニングするための軽量のエージェント ベースのソリューションが提供されるようになりました。 アウトバウンド ユーザー プロビジョニングに使用することをお勧めします。 詳細については、こちらを参照してください

サンプル データベースの準備

SQL Server を実行しているサーバーで、「 付録 A」にある SQL スクリプトを実行します。このスクリプトは、GSQLDEMO という名前のサンプル データベースを作成します。 作成されたデータベースのオブジェクト モデルは、次の図のようになります。
オブジェクト モデル

また、データベースへの接続に使用するユーザーを作成します。 このチュートリアルでは、ユーザーを FABRIKAM\SQLUser と呼び、ドメインに配置します。

ODBC 接続ファイルを作成する

汎用 SQL コネクタでは、ODBC を使用してリモート サーバーに接続しています。 まず、ODBC 接続情報を含むファイルを作成する必要があります。

  1. サーバーで ODBC 管理ユーティリティを起動します。
    O D B C が入力された検索フィールドを示すスクリーンショット。
  2. [ ファイル DSN] タブを選択します。 [ 追加...] をクリックします。
    [FILE D S N] タブが選択されている O D B C 管理ユーティリティのスクリーンショット。
  3. 既定のドライバーで問題ありません。それを選択し、[次へ]> をクリックしてください。
    新しいデータ ソースのドライバー オプションを示すスクリーンショット。
  4. ファイルに GenericSQL などの名前を付けます。
    フィールドに入力された新しいファイル名の例と、[次へ] ボタンを示すスクリーンショット。
  5. [完了] をクリックします。
    新しいデータ ソースの詳細と [完了] ボタンを示すスクリーンショット。
  6. 接続を構成する時間。 データ ソースに適切な説明を指定し、SQL Server を実行しているサーバーの名前を指定します。
    説明とサーバー名の例と [次へ] ボタンを含む構成ウィザードを示すスクリーンショット。
  7. SQL で認証する方法を選択します。 この場合は、Windows 認証を使用します。
    統合された Windows 認証オプションが選択され、[次へ] ボタンが選択された認証手順を示すスクリーンショット。
  8. サンプル データベースの名前 GSQLDEMO を指定します。
    [データベース] フィールドに入力されたデータベース名と [次へ] ボタンを示すスクリーンショット。
  9. この画面では、すべてを既定値のままにします。 [完了] をクリックします。
    ウィザードの最後の手順の既定の設定と [完了] ボタンを示すスクリーンショット。
  10. すべてが期待どおりに動作していることを確認するには、[ データ ソースのテスト] をクリックします。
    新しい O D B C データ ソースと [テスト データ ソース] ボタンの構成の詳細を示すスクリーンショット。
  11. テストの成功を確認します。
    テスト結果と O K ボタンを示すスクリーンショット。
  12. これで、ODBC 構成ファイルがファイル DSN に表示されるようになります。
    [File D S N]\(ファイル\) タブが選択され、新しい O D B C 構成ファイルが一覧表示されている[O D B C 管理ユーティリティ]のスクリーンショット。

これで必要なファイルが作成され、コネクタの作成を開始できます。

汎用 SQL コネクタを作成する

  1. Synchronization Service Manager UI で、[ コネクタ ] と [作成] を選択します。 汎用 SQL (Microsoft) を選択し、わかりやすい名前を付けます。
    コネクタが選択され、[次へ] ボタンが表示された [コネクタの作成] ウィザードを示すスクリーンショット。
  2. 前のセクションで作成した DSN ファイルを見つけて、サーバーにアップロードします。 データベースに接続するための資格情報を指定します。
    資格情報が入力され、[次へ] ボタンが表示された D S N ファイルを示すスクリーンショット。
  3. このチュートリアルでは、 ユーザーグループの 2 種類のオブジェクトがあると簡単に説明します。 固定値リスト フィールドに入力された 2 つのオブジェクトの種類と、[次へ] ボタンを示すスクリーンショット。
  4. 属性を見つけるには、コネクタでテーブル自体を調べることでこれらの属性を検出します。 ユーザーは SQL の予約語であるため、角かっこ [ ] で指定する必要があります。
    ユーザーのテーブルとテーブル値の属性検出値と、[次へ] ボタンを示すスクリーンショット。
  5. アンカー属性と DN 属性を定義する時間。 ユーザーの場合は、2 つの属性のユーザー名と EmployeeID の組み合わせを使用します。 グループの場合は GroupName を使用します (実際には現実的ではありませんが、このチュートリアルでは機能します)。 [次へ] ボタンを含むユーザー名、従業員 ID、グループ名を示すスクリーンショット。
  6. SQL データベースですべての属性の種類を検出できるわけではありません。 具体的には、参照属性タイプを検出できません。 グループ オブジェクトの種類については、OwnerID と MemberID を参照するように変更する必要があります。
    更新された所有者 ID フィールドとメンバー ID フィールドと [次へ] ボタンを示すスクリーンショット。
  7. 前の手順で参照属性として選択した属性には、これらの値が参照であるオブジェクト型が必要です。 この例では、User オブジェクト型です。
    選択したオブジェクトの種類と [次へ] ボタンを示すスクリーンショット。
  8. [Global Parameters (グローバル パラメーター)] ページで、[Delta Strategy (デルタ方針)] として [透かし] を選択します。 日付/時刻形式 yyyy-MM-dd HH:mm:ss も入力します。 デルタ戦略のフィールドと日付と時刻の形式、および [次へ] ボタンを示すスクリーンショット。
  9. [ パーティションと階層の構成 ] ページで、両方のオブジェクトの種類を選択します。 選択されているオブジェクトの種類と [次へ] ボタンの両方を示すスクリーンショット。
  10. [ オブジェクトの種類の選択] と [ 属性の選択] で、オブジェクトの種類とすべての属性の両方を選択します。 [ アンカーの構成 ] ページで、[ 完了] をクリックします。

実行プロファイルの作成

  1. Synchronization Service Manager UI で、[ コネクタ] を選択し、[ 実行プロファイルの構成] を選択します。 [ 新しいプロファイル] をクリックします。 完全インポートから始めます。
    [名前] フィールドにフル インポートが入力され、[次へ] ボタンが入力された [実行プロファイルの構成] ウィザードを示すスクリーンショット。
  2. 完全インポート (ステージのみ) の種類を選択します。
    選択した種類と [次へ] ボタンを示すスクリーンショット。
  3. パーティション OBJECT=User を選択します
    選択されたパーティションと [次へ] ボタンを示すスクリーンショット。
  4. [テーブル] を選択し、「USERS」と入力します。 複数値のオブジェクトの種類セクションまで下にスクロールし、次の図のようにデータを入力します。 [完了] を選択して手順を保存します。
    操作方法 [テーブル] が選択され、テーブル フィールドにユーザーが表示されているスクリーンショット。
    名前と結合条件に入力された複数値のオブジェクト型の値を示すスクリーンショット。
  5. 新しいステップを選択します。 今回は、 OBJECT=Group を選択します。 最後のページで、次の図のように構成を使用します。 [完了] をクリックします。
    操作方法テーブルがテーブルフィールドで選択され、グループ化された状態を示すスクリーンショット。
    テーブルと結合条件の名前に入力されたオブジェクトの種類の値を示すスクリーンショット。
  6. 省略可能: 必要に応じて、追加の実行プロファイルを構成できます。 このチュートリアルでは、フル インポートのみを使用します。
  7. [ OK] を クリックして実行プロファイルの変更を完了します。

テスト データを追加してインポートをテストする

サンプル データベースにテスト データを入力します。 準備ができたら、[ 実行 ] と [ フル インポート] を選択します。

2 つの電話番号を持つユーザーと、一部のメンバーを持つグループを次に示します。
2 つの電話番号を持つユーザーを示すデータのスクリーンショット。
一部のメンバーを含むグループを示すデータのスクリーンショット。

付録 A

サンプル データベースを作成する SQL スクリプト

---Creating the Database---------
Create Database GSQLDEMO
Go
-------Using the Database-----------
Use [GSQLDEMO]
Go
-------------------------------------
USE [GSQLDEMO]
GO
/****** Object:  Table [dbo].[GroupMembers]   ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[GroupMembers](
    [MemberID] [int] NOT NULL,
    [Group_ID] [int] NOT NULL
) ON [PRIMARY]

GO
/****** Object:  Table [dbo].[GROUPS]   ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[GROUPS](
    [GroupID] [int] NOT NULL,
    [GROUPNAME] [nvarchar](200) NOT NULL,
    [DESCRIPTION] [nvarchar](200) NULL,
    [WATERMARK] [datetime] NULL,
    [OwnerID] [int] NULL,
PRIMARY KEY CLUSTERED
(
    [GroupID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]

GO
/****** Object:  Table [dbo].[USERPHONE]   ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[USERPHONE](
    [USER_ID] [int] NULL,
    [Phone] [varchar](20) NULL
) ON [PRIMARY]

GO
SET ANSI_PADDING OFF
GO
/****** Object:  Table [dbo].[USERS]   ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[USERS](
    [USERID] [int] NOT NULL,
    [USERNAME] [nvarchar](200) NOT NULL,
    [FirstName] [nvarchar](100) NULL,
    [LastName] [nvarchar](100) NULL,
    [DisplayName] [nvarchar](100) NULL,
    [ACCOUNTDISABLED] [bit] NULL,
    [EMPLOYEEID] [int] NOT NULL,
    [WATERMARK] [datetime] NULL,
PRIMARY KEY CLUSTERED
(
    [USERID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]

GO
ALTER TABLE [dbo].[GroupMembers]  WITH CHECK ADD  CONSTRAINT [FK_GroupMembers_GROUPS] FOREIGN KEY([Group_ID])
REFERENCES [dbo].[GROUPS] ([GroupID])
GO
ALTER TABLE [dbo].[GroupMembers] CHECK CONSTRAINT [FK_GroupMembers_GROUPS]
GO
ALTER TABLE [dbo].[GroupMembers]  WITH CHECK ADD  CONSTRAINT [FK_GroupMembers_USERS] FOREIGN KEY([MemberID])
REFERENCES [dbo].[USERS] ([USERID])
GO
ALTER TABLE [dbo].[GroupMembers] CHECK CONSTRAINT [FK_GroupMembers_USERS]
GO
ALTER TABLE [dbo].[GROUPS]  WITH CHECK ADD  CONSTRAINT [FK_GROUPS_USERS] FOREIGN KEY([OwnerID])
REFERENCES [dbo].[USERS] ([USERID])
GO
ALTER TABLE [dbo].[GROUPS] CHECK CONSTRAINT [FK_GROUPS_USERS]
GO
ALTER TABLE [dbo].[USERPHONE]  WITH CHECK ADD  CONSTRAINT [FK_USERPHONE_USER] FOREIGN KEY([USER_ID])
REFERENCES [dbo].[USERS] ([USERID])
GO
ALTER TABLE [dbo].[USERPHONE] CHECK CONSTRAINT [FK_USERPHONE_USER]
GO