Oracle SQL Microsoft Graph コネクタ
Oracle SQL Microsoft Graph コネクタを使用すると、organizationはオンプレミスの Oracle データベースからデータを検出してインデックスを作成できます。 コネクタは、Microsoft Search で指定されたコンテンツにインデックスを付け、365 Microsoft Copilotします。 ソース データを使用してインデックスを最新の状態に保つために、定期的な完全クロールと増分クロールがサポートされます。 Oracle SQL コネクタを使用すると、特定のユーザーの検索結果へのアクセスを制限することもできます。
この記事は、Microsoft 365 管理者、または Oracle SQL Microsoft Graph コネクタを構成、実行、監視するユーザーを対象とします。
機能
- SQL クエリを使用して、Oracle SQL データベースからレコードのインデックスを作成します。
- SQL クエリで追加されたユーザーまたはグループの一覧を使用して、すべてのレコードのアクセス許可を指定します。
- エンド ユーザーが Copilot のインデックス付きレコードに関連する質問を行えるようにします。
- Copilot のセマンティック検索を使用して、ユーザーがキーワード、個人の好み、ソーシャル接続に基づいて関連するコンテンツを検索できるようにします。
制限事項
- Oracle SQL バージョン: オンプレミス データベースでは、Oracle Database バージョン 11g 以降を実行する必要があります。 コネクタは、Windows、Linux、および Azure VM プラットフォームでホストされている Oracle データベースをサポートします。
- 高いクロール速度とパフォーマンスをサポートするために、コネクタは OLTP (オンライン トランザクション処理) ワークロードのみをサポートするように構築されています。 提供された SQL クエリを 40 秒のタイムアウトで実行せず、サポートされていない OLAP (オンライン分析処理) ワークロード。
- ACL は、ユーザー プリンシパル名 (UPN)、Microsoft Entra ID、または Active Directory セキュリティを使用してのみサポートされます。
- データベース列内のリッチ コンテンツのインデックス作成はサポートされていません。 このようなコンテンツの例としては、データベース列内にリンクとして存在する HTML、JSON、XML、BLOB、ドキュメント解析などがあります。
前提条件
- organizationの Microsoft 365 テナントの検索管理者である必要があります。
- Microsoft Graph コネクタ エージェントをインストールする: Oracle SQL Serverにアクセスするには、コネクタ エージェントをインストールして構成する必要があります。 詳細については、「 Microsoft Graph コネクタ エージェントのインストール 」を参照してください。
- サービス アカウント: SQL データベースに接続し、Microsoft Graph Connector がレコードを定期的に更新できるようにするには、サービス アカウントに読み取りアクセス許可が付与されたサービス アカウントが必要です。
注:
Oracle SQL コネクタの構成中にWindows 認証を使用する場合、サインインしようとしているユーザーは、コネクタ エージェントがインストールされているコンピューターに対する対話型ログイン権限を持っている必要があります。 詳細については、「 ログイン ポリシーの管理」を参照してください。
セットアップの概要
1. 表示名
表示名は、Copilot の各引用文献を識別するために使用され、ユーザーが関連付けられているファイルまたは項目を簡単に認識するのに役立ちます。 表示名は、信頼されたコンテンツも示します。 表示名は、 コンテンツ ソース フィルターとしても使用されます。 このフィールドには既定値が存在しますが、organizationのユーザーが認識する名前にカスタマイズできます。
2. SQL サーバー
SQL データに接続するには、ホスト名、ポート、サービス (データベース) 名を指定する必要があります。
サービス名が使用できない場合、システム識別子 (SID) を使用して接続する場合は、次のいずれかのコマンドを使用してサービス名を派生させることができます (sys admin として実行されます)。
- SERVICE_NAME gv$session から sid を選択します (v$MYSTAT から sid を選択します)。
- デュアルからsys_context('userenv','service_name') を選択します。
3. Graph コネクタ エージェント
Graph コネクタ エージェントは、Web サイト インスタンスとコネクタ API の間のブリッジとして機能し、安全で効率的なデータ転送を可能にします。 この手順では、コネクタに使用するエージェント構成を選択します。
Microsoft Graph コネクタ エージェントをまだインストールしていない場合は、エージェント インストーラーをダウンロードし、インストール手順に従ってセットアップできます。 インストールが完了したら、オンプレミスの Web サイトをコネクタに接続するようにエージェントが正しく構成されていることを確認します。
4. 認証の種類
Oracle SQL からデータを認証および同期するには、サポートされている 2 つの方法のいずれかを選択します。
a. 基本認証
b. Windows 認証
5. 限定対象ユーザーにロールアウトする
この接続を制限付きユーザー ベースにデプロイします。ロールアウトを広範な対象ユーザーに展開する前に、Copilot やその他の Search サーフェスで検証する必要がある場合は、この接続をデプロイします。 制限付きロールアウトの詳細については、 こちらをクリックしてください。
コンテンツ
データベース コンテンツを検索するには、コネクタを構成するときに SQL クエリを指定する必要があります。 これらの SQL クエリでは、インデックスを作成するすべてのデータベース列に名前を付ける必要があります (ソース プロパティ)。 これには、すべての列を取得するために実行する必要がある SQL 結合が含まれます。 検索結果へのアクセスを制限するには、コネクタを構成するときに SQL クエリ内でAccess Control Lists (ACL) を指定する必要があります。
1. フル クロール (必須)
a.
データ列の選択 (必須) と ACL 列 (省略可能)
[クリックして展開]フル クロール クエリのデータ列の選択。
この手順では、データベースのフル クロールを実行する SQL クエリを構成します。 フル クロールでは、Microsoft Copilotまたは検索で表示する必要があるすべての列またはプロパティが選択されます。 ACL 列を指定して、検索結果へのアクセスを特定のユーザーまたはグループに制限することもできます。
ヒント
必要なすべての列を取得するには、複数のテーブルを結合できます。
この例では、検索のデータを保持する 5 つのデータ列 (OrderId、OrderTitle、OrderDesc、CreatedDateTime、IsDeleted) を示します。 データの各行の表示アクセス許可を設定するには、必要に応じて、次の ACL 列 (AllowedUsers、AllowedGroups、DeniedUsers、DeniedGroups) を選択できます。 これらのすべてのデータ列には、 クエリ、 検索、 取得、または 絞り込みオプションもあります。
次のクエリ例に示すように、データ列を選択します。 SELECT orderId, orderTitle, orderDesc, allowedUsers, allowedGroups, deniedUsers, deniedGroups, createdDateTime, isDeleted
SQL コネクタでは、SELECT 句で英数字以外の文字を持つ列名は許可されません。 別名を使用して列名から英数字以外の文字を削除します。 例 - SELECT column_name AS columnName
検索結果へのアクセスを管理するには、クエリで 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 のレコードにアクセスできませんが、他のすべてのユーザーはこのレコードにアクセスできます。
b.
サポートされているデータ型
[クリックして展開]サポートされているデータ型の一覧。
Oracle SQL Microsoft Graph コネクタでは、次のデータ型がサポートされています。 テーブルには、サポートされている SQL データ型のインデックス作成データ型も要約されています。 インデックス作成でサポートされている Microsoft Graph コネクタのデータ型の詳細については、 プロパティ リソースの種類に関するドキュメントを参照してください。
カテゴリ | ソース データ型 | データ型のインデックス作成 |
---|---|---|
数値データ型 | NUMBER(p,0) | int64 (p <= 18 の場合) double (p > 18 の場合)。 |
浮動小数点数データ型 | NUMBER(p,s) FLOAT(p) |
複。 |
日付データ型 | 日付 タイムスタンプ TIMESTAMP(n) |
datetime。 |
文字データ型 | CHAR(n) VARCHAR VARCHAR2 長い CLOB NCLOB |
糸。 |
Unicode 文字データ型 | NCHAR NVARCHAR |
糸。 |
RowID データ型 | ROWID UROWID |
糸。 |
現在直接サポートされていない他のデータ型の場合、列はサポートされているデータ型に明示的にキャストする必要があります。
c.
透かし (必須)
[クリックして展開]フル クロール クエリでの透かし列の指定
データベースの過負荷を防ぐために、コネクタはフル クロール透かし列を使用してフル クロール クエリをバッチ処理して再開します。 透かし列の値を使用して、後続の各バッチがフェッチされ、最後のチェックポイントからクエリが再開されます。 基本的に、このメカニズムはフル クロールのデータ更新を制御します。
次の例に示すように、透かしのクエリ スニペットを作成します。
-
WHERE (CreatedDateTime > @watermark)
. 予約されたキーワード (keyword)@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 行の次のバッチがフェッチされます。
2. プロパティの管理
SQL コネクタは、フル クロール SQL クエリで指定されたすべての列をインジェストのソース プロパティとして取得します。 この手順では、コンテンツの検索スキーマを定義できます。 これには、選択したソース プロパティの検索、取得、クエリ、絞り込みなどの検索注釈を定義する必要があります。 これには、検索の関連性を高めるためのセマンティック ラベルとエイリアスの割り当ても含まれます。 検索スキーマの詳細については、「 プロパティの管理」のガイドラインに関するドキュメントを参照してください。
3. 増分クロール (省略可能)
a.
増分同期クエリ
この省略可能な手順では、データベースの増分クロールを実行する SQL クエリを指定します。 このクエリでは、SQL コネクタによって、前回の増分クロール以降のデータへの変更が決定されます。 フル クロールと同様に、[ クエリ]、[ 検索]、[ 取得 ]、または [絞り込み] オプションを選択するすべての列を選択します。 フル クロール クエリで指定したのと同じ ACL 列のセットを指定します。
次の図のコンポーネントは、フル クロール コンポーネントに似ていますが、1 つの例外があります。 この場合、選択した透かし列は "ModifiedDateTime" です。 フル クロールの手順を確認して、増分クロール クエリを記述する方法を確認し、例として次の画像を参照してください。
b. 論理的な削除手順 (省略可能)
SQL レコード システムでは、論理的な削除は、データベースからレコードを物理的に削除するのではなく、特定のフラグまたは列を設定して "削除済み" としてマークする手法です。 これにより、レコードをデータベースに残すことができますが、ほとんどの操作から論理的に除外されます。 増分クロール中にデータベース内の論理的に削除された行を削除するには、行が削除されることを示す論理的な削除列名と値を指定します。
ユーザー
[ このデータ ソースへのアクセス権を持つユーザーのみ ] を使用して、フル クロール クエリで選択されているユーザーまたはグループへのアクセスを制限することも、上書きしてコンテンツを Everyone に表示することもできます。
1. アクセス許可情報を含む列をマップする
アクセス制御メカニズムを指定するさまざまなアクセス制御 (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'のような不変の一意のセキュリティ識別子があります。
同期
更新間隔によって、データ ソースと Graph コネクタ インデックスの間でデータが同期される頻度が決まります。
ここに存在するスケジュール オプションに基づいて、フル クロールと増分クロールを構成できます。 既定では、増分クロール (構成されている場合) は 15 分ごとに設定され、フル クロールは毎日に設定されます。 必要に応じて、データ更新のニーズに合わせてこれらのスケジュールを調整できます。
この時点で、Oracle SQL の接続を作成する準備ができました。 [作成] ボタンをクリックすると、データベースから接続とインデックス データを発行できます。
トラブルシューティング
接続を公開したら、管理センターの [データ ソース] タブの状態を確認できます。 更新と削除を行う方法については、「接続を監視する」をご覧ください。 よく見られる問題のトラブルシューティング手順 については、こちらを参照してください。
問題がある場合、またはフィードバックを提供する場合は、Microsoft Graph にお問い合わせください |サポート。