Oracle SQL Microsoft Graph コネクタ
Oracle SQL Graph コネクタを使用すると、組織はオンプレミスの Oracle データベースからデータを検出してインデックスを作成できます。 コネクタは、指定されたコンテンツに Microsoft Search にインデックスを付けます。 ソース データを使用してインデックスを最新の状態に保つために、定期的な完全クロールと増分クロールがサポートされます。 Oracle SQL コネクタを使用すると、特定のユーザーの検索結果へのアクセスを制限することもできます。
注:
一般的な Microsoft Graph コネクタのセットアップ手順については、Microsoft 365 管理センター の Microsoft Graph コネクタのセットアップに関する記事を参照してください。
この記事は、Oracle SQL Graph コネクタを構成、実行、監視するすべてのユーザーを対象とします。 一般的なセットアップ プロセスを補完し、Oracle SQL Graph コネクタにのみ適用される手順を示します。 この記事には、トラブルシューティングと制限事項に関する情報も含まれています。
使用を開始する前に
コネクタ エージェントをインストールする
オンプレミスのサード パーティのデータにアクセスするには、Graph コネクタ エージェントをインストールして構成する必要があります。 詳細については、「 Graph コネクタ エージェントのインストール 」を参照してください。
手順 1: Microsoft 365 管理センターにコネクタを追加する
一般的な セットアップ手順に従います。
手順 2: 接続に名前を指定する
一般的な セットアップ手順に従います。
手順 3. 接続設定を構成する
Oracle SQL コネクタをデータ ソースに接続するには、クロールするデータベース サーバーとオンプレミスの Graph コネクタ エージェントを構成する必要があります。 その後、必要な認証方法を使用してデータベースに接続できます。
Oracle SQL コネクタの場合は、ホスト名、ポート、サービス (データベース) 名と、優先する認証方法、ユーザー名、およびパスワードを指定する必要があります。
サービス名が使用できない場合、SID を使用して接続すると、次のいずれかのコマンドを使用してサービス名を派生させることができます (sys admin として実行されます) -
- SERVICE_NAME gv$session から sid を選択します (v$MYSTAT から sid を選択します)。
- デュアルからsys_context('userenv','service_name') を選択します。
注:
コネクタが接続できるようにするには、データベースで Oracle データベース バージョン 11g 以降を実行する必要があります。 コネクタは、Windows、Linux、Azure VM プラットフォームでホストされている Oracle データベースをサポートしています。
データベース コンテンツを検索するには、コネクタを構成するときに SQL クエリを指定する必要があります。 これらの SQL クエリでは、インデックスを作成するすべてのデータベース列 (つまり、ソース プロパティ) に名前を付ける必要があります。これには、すべての列を取得するために実行する必要がある SQL 結合が含まれます。 検索結果へのアクセスを制限するには、コネクタを構成するときに SQL クエリ内でアクセス制御リスト (ACL) を指定する必要があります。
手順 3a: フル クロール (必須)
この手順では、データベースのフル クロールを実行する SQL クエリを構成します。 フル クロールでは、[ クエリ]、[ 検索]、または [取得] オプションを選択するすべての列またはプロパティが選択 されます。 ACL 列を指定して、検索結果のアクセスを特定のユーザーまたはグループに制限することもできます。
ヒント
必要なすべての列を取得するには、複数のテーブルを結合できます。
データ列の選択 (必須) と ACL 列 (省略可能)
この例では、検索のデータを保持する 5 つのデータ列 (OrderId、OrderTitle、OrderDesc、CreatedDateTime、IsDeleted) の選択を示します。 データの各行の表示アクセス許可を設定するには、必要に応じて、次の ACL 列 (AllowedUsers、AllowedGroups、DeniedUsers、DeniedGroups) を選択できます。 これらのデータ列すべてに対して、[ クエリ]、[ 検索]、または [取得] のオプションを選択できます。
次のクエリ例に示すように、データ列を選択します。 SELECT OrderId, OrderTitle, OrderDesc, AllowedUsers, AllowedGroups, DeniedUsers, DeniedGroups, CreatedDateTime, IsDeleted
検索結果へのアクセスを管理するには、クエリで 1 つ以上の ACL 列を指定します。 SQL コネクタを使用すると、レコード レベルごとにアクセスを制御できます。 テーブル内のすべてのレコードに対して同じアクセス制御を選択できます。 ACL 情報が別のテーブルに格納されている場合は、クエリでそれらのテーブルとの結合を行う必要がある場合があります。
上記のクエリで ACL 列を使用する方法を次に示します。 次の一覧では、4 つの アクセス制御メカニズムについて説明します。
- AllowedUsers: このオプションは、検索結果にアクセスできるユーザー ID の一覧を指定します。 次の例では、ユーザーの一覧: john@contoso.com、 keith@contoso.com、 lisa@contoso.com は、OrderId = 12 のレコードにのみアクセスできます。
- AllowedGroups: このオプションは、検索結果にアクセスできるユーザーのグループを指定します。 次の例では、グループ sales-team@contoso.com は OrderId = 12 のレコードにのみアクセスできます。
- DeniedUsers: このオプションは、検索結果にアクセス できない ユーザーの一覧を指定します。 次の例では、ユーザー john@contoso.com と keith@contoso.com は OrderId = 13 のレコードにアクセスできませんが、他のすべてのユーザーはこのレコードにアクセスできます。
- DeniedGroups: このオプションは、検索結果にアクセス できない ユーザーのグループを指定します。 次の例では、グループ engg-team@contoso.com と pm-team@contoso.com は OrderId = 15 のレコードにアクセスできませんが、他のすべてのユーザーがこのレコードにアクセスできます。
サポートされているデータ型
次の表は、Oracle SQL コネクタでサポートされているデータ型をまとめたものです。 テーブルには、サポートされている SQL データ型のインデックス作成データ型も要約されています。 インデックス作成でサポートされている Microsoft Graph コネクタのデータ型の詳細については、 プロパティ リソースの種類に関するドキュメントを参照してください。
カテゴリ | ソース データ型 | データ型のインデックス作成 |
---|---|---|
数値データ型 | NUMBER(p,0) | int64 (p <= 18 の場合) double (p > 18 の場合) |
浮動小数点数データ型 | NUMBER(p,s) FLOAT(p) |
double |
日付データ型 | 日付 タイムスタンプ TIMESTAMP(n) |
日付型 |
文字データ型 | CHAR(n) VARCHAR VARCHAR2 長い CLOB NCLOB |
string |
Unicode 文字データ型 | NCHAR NVARCHAR |
string |
RowID データ型 | ROWID UROWID |
文字列 |
現在直接サポートされていない他のデータ型の場合、列はサポートされているデータ型に明示的にキャストする必要があります。
透かし (必須)
データベースの過負荷を防ぐために、コネクタはフル クロール透かし列を使用してフル クロール クエリをバッチ処理して再開します。 透かし列の値を使用すると、後続の各バッチがフェッチされ、最後のチェックポイントからクエリが再開されます。 基本的にこれは、フル クロールのデータ更新を制御するメカニズムです。
次の例に示すように、透かしのクエリ スニペットを作成します。
-
WHERE (CreatedDateTime > @watermark)
. 予約キーワード@watermark
を使用して、透かし列名を引用します。 基準値列は昇順でのみ並べ替えることができます。 -
ORDER BY CreatedDateTime ASC
. 基準値列を昇順で並べ替えます。
次の図に示す構成では、 CreatedDateTime
が選択された透かし列です。 行の最初のバッチをフェッチするには、透かし列のデータ型を指定します。 この場合、データ型は DateTime
。
最初のクエリでは、"CreatedDateTime > 1753 年 1 月 1 日 00:00:00" (DateTime データ型の最小値) を使用して、最初の N 行数をフェッチします。 最初のバッチがフェッチされると、行が昇順で並べ替えられた場合、バッチで返される CreatedDateTime
の最大値がチェックポイントとして保存されます。 たとえば、2019 年 3 月 1 日 03:00:00 です。 次に、クエリで "CreatedDateTime > March 1, 2019 03:00:00" を使用して、N 行の次のバッチがフェッチされます。
論理的に削除された行をスキップする (省略可能)
データベース内の論理的に削除された行をインデックス付けから除外するには、論理的な削除列の名前と、行が削除されたことを示す値を指定します。
フル クロール: 検索アクセス許可を管理する
[ アクセス許可の管理 ] を選択して、アクセス制御メカニズムを指定するさまざまなアクセス制御 (ACL) 列を選択します。 フル クロール SQL クエリで指定した列名を選択します。
ACL の各列は、複数値の列である必要があります。 これらの複数の ID 値は、セミコロン (;)、コンマ (、) などの区切り記号で区切ることができます。 値区切り記号フィールドでこの 区切り記号 を指定する必要があります。
ACL としての使用では、次の ID の種類がサポートされています。
- ユーザー プリンシパル名 (UPN): ユーザー プリンシパル名 (UPN) は、電子メール アドレス形式のシステム ユーザーの名前です。 UPN (例: john.doe@domain.com) は、ユーザー名 (ログオン名)、区切り記号 (@ 記号)、ドメイン名 (UPN サフィックス) で構成されます。
- Microsoft Entra ID: Microsoft Entra ID では、すべてのユーザーまたはグループに'e0d3ad3d-0000-1111-2222-3c5f5c52ab9b' のようなオブジェクト ID があります
- Active Directory (AD) セキュリティ ID: オンプレミスの AD セットアップでは、すべてのユーザーとグループに、'S-1-5-21-3878594291-215959936-132693609-65242'のような不変の一意のセキュリティ識別子があります。
手順 3b: 増分クロール (省略可能)
この省略可能な手順では、データベースの増分クロールを実行する SQL クエリを指定します。 このクエリでは、SQL コネクタによって、前回の増分クロール以降のデータへの変更が決定されます。 フル クロールと同様に、[ クエリ]、[ 検索]、または [取得] のいずれかのオプションを選択します。 フル クロール クエリで指定したのと同じ ACL 列のセットを指定します。
次の図のコンポーネントは、フル クロール コンポーネントに似ていますが、1 つの例外があります。 この場合、選択した透かし列は "ModifiedDateTime" です。 フル クロールの手順を確認して、増分クロール クエリを記述する方法を確認し、例として次の画像を参照してください。
手順 4: プロパティ ラベルを割り当てる
一般的な セットアップ手順に従います。
手順 5: スキーマを管理する
一般的な セットアップ手順に従います。
手順 6: 検索アクセス許可を管理する
フル クロール画面で指定された ACL を使用するか、上書きしてコンテンツをすべてのユーザーに表示するようにすることができます。
手順 7: 更新設定を選択する
Oracle SQL コネクタでは、完全クロールと増分クロールの両方の更新スケジュールがサポートされています。 両方を設定することをお勧めします。
フル クロール スケジュールでは、以前に Microsoft Search インデックスに同期されていた削除された行と、同期フィルターから移動したすべての行が検索されます。 最初にデータベースに接続すると、フル クロールが実行され、フル クロール クエリから取得されたすべての行が同期されます。 新しい行を同期して更新するには、増分クロールをスケジュールする必要があります。
手順 8: 接続を確認する
一般的な セットアップ手順に従います。
制限事項
Oracle SQL コネクタには、プレビュー リリースで次の制限があります。
- オンプレミス データベースでは、Oracle Database バージョン 11g 以降を実行する必要があります。
- ACL は、ユーザー プリンシパル名 (UPN)、Microsoft Entra ID、または Active Directory セキュリティを使用してのみサポートされます。
- データベース列内のリッチ コンテンツのインデックス作成はサポートされていません。 このようなコンテンツの例としては、データベース列内にリンクとして存在する HTML、JSON、XML、BLOB、ドキュメント解析などがあります。
トラブルシューティング
接続を公開したら、管理センターの [データ ソース] タブの状態を確認できます。 更新と削除を行う方法については、「接続を監視する」をご覧ください。 よく見られる問題のトラブルシューティング手順 については、こちらを参照してください。
その他の問題がある場合、またはフィードバックを提供したい場合は、 aka.ms/TalkToGraphConnectors にお問い合わせください。