シナリオ: データベース・ツールを使用したIoTデータへの接続

IoTドメイン・データベースへのプライベートなトークン認証済Oracle Database Tools接続を作成します。

IoTドメインに直接データベース接続を構成した後、IoTドメイン・データベースへの再利用可能なOracle データベース・ツール接続を作成します。接続では、IoTデータベース接続文字列、許可リストに登録されたサブネットのプライベート・エンドポイント、IAMトークン認証、およびIoTドメイン・ワークスペースのプロキシ・クライアント・ユーザーが使用されます。

データベース・ツール接続は、再利用可能な接続定義です。データベース・ツールで接続を検証し、サポートされているデータベース・ツール・クライアントおよびOCIサービス(SQLワークシート、データベース・ツールの管理対象MCPサーバー、サポートされているOCI AIエージェント統合、またはデータベースに接続する必要があるその他の統合など)で使用できます。

始める前に

次のものがあることを確認します。

ノート

プロキシ・クライアント・ユーザー名では、<domainShortId>__WKSPという形式のIoTドメインの短縮IDが使用されます。

ステップ1: IoTの直接データベース接続の構成

データベース・ツール接続を作成する前に、IoTデータベースへの直接アクセスを構成します。この設定により、プライベート・ネットワーク内の承認済リソースがIoTドメイン・データベースに接続できるようになります。

VCN、コンピュート、要塞、アイデンティティ動的グループ、SQLclの例など、プロセスまたはエンドツーエンドの設定の概要を次に示します(シナリオ: IoTデータベースへの直接接続を参照)。

ノート

データベース・ツールでは、このシナリオで作成したプライベート・エンドポイントが使用されます。ダイレクト・コネクト・シナリオの計算および要塞ステップは、CLI設定、トークン取得または検証のホストが必要な場合に使用されます。bastionパスを使用する場合、bastion SSH port forwardingコマンドはトンネルのみを開始し、その端末で実行し続けます。CLIツールをインストールするか、検証コマンドを実行する前に、転送されたローカル・ポートを使用してコンピュート・インスタンスにSSH接続するための別の端末を開きます。
  1. ナビゲーション・メニューを開き、「ネットワーキング」「Virtual Cloud Networks」「VCNの作成」の順に選択します。IoTドメイン・グループおよびIoTドメインと同じリージョンにVCNを作成します。
  2. VCNにプライベート・リージョナル・サブネットを作成します。サブネットのDNSホスト名を有効にします。
  3. VCNのサービス・ゲートウェイを作成し、Oracle Services Networkトラフィックをサービス・ゲートウェイに送信するルート・ルールを追加します。
  4. ネットワーク・セキュリティ・グループを作成または更新して、サブネット内のリソースがデータベース接続に必要なエグレス・トラフィックを送信できるようにします。
  5. VCN OCIDIoTドメイン・グループ許可リストに追加します。oci iot domain-group configure-data-accessコマンド、または同等のコンソールまたはAPIフローを使用します。
  6. IoTドメイン・グループ詳細を取得し、db-connection-stringおよびdb-token-scope値を記録します。
  7. 直接データベース・アクセス用のIoTドメインのアイデンティティ・グループまたは動的グループを許可リストします。oci iot domain configure-direct-data-accessコマンド、または同等のコンソールまたはAPIフローを使用します。

例:

oci iot domain-group configure-data-access \
  --iot-domain-group-id <iot-domain-group-OCID> \
  --db-allow-listed-vcn-ids '["<vcn-OCID>"]'

oci iot domain-group get \
  --iot-domain-group-id <iot-domain-group-OCID>

oci iot domain configure-direct-data-access \
  --iot-domain-id <iot-domain-OCID> \
  --db-allow-listed-identity-group-names '["<tenancy-OCID>:<identity-domain-name>/<identity-group-name>"]'

oci iam db-token get \
  --auth instance_principal \
  --scope urn:oracle:db::id::<database-compartment-OCID>

ステップ2: データベース・ツールのプライベート・エンドポイントの作成

直接IoTデータベース接続用に構成したものと同じサブネットに、データベース・ツールのプライベート・エンドポイントを作成します。データベース・ツールは、このプライベート・エンドポイントを使用して、パブリック・データベース・パスなしでAutonomous AI Databaseにアクセスします。

  1. ナビゲーション・メニューを開き、「開発者サービス」「データベース・ツール」の順に選択します。
  2. 「プライベート・エンドポイントの作成」を選択します。
  3. IoT直接データベース接続を許可するコンパートメントVCNおよびサブネットを選択します。
  4. ネットワーク設計でプライベート・エンドポイントを使用する場合、プライベート・エンドポイントに必要なネットワーク・セキュリティ・グループを選択します。
  5. 「作成」を選択し、プライベート・エンドポイントがアクティブになるまで待機します。
ノート

プライベート・エンドポイントは、データベース接続文字列のデータ・ホストに到達できる必要があります。データベース接続に直接ワークフローに複数のサブネットを作成した場合は、データベース・エグレスに必要なルートおよびセキュリティ・ルールを含むサブネットを使用します。

ステップ3: データベース・ツール接続の作成

IoTデータベース接続文字列、プライベート・エンドポイントおよびIAMトークン認証を使用するデータベース・ツール接続を作成します。

  1. 「データベース・ツール」「接続の作成」を選択します。
  2. 「データベース情報の入力」を選択します。
  3. 「接続タイプ」で、「Oracle AI Database」を選択します。
  4. 「接続文字列」に、IoTドメイン・グループの詳細からデータベース接続文字列を入力します。
  5. 「プライベート・ネットワークを介したデータベースへのアクセス」を選択し、ステップ2で作成したプライベート・エンドポイントを選択します。
  6. 「Wallet format」「None」に設定します。
  7. 「拡張オプション」までスクロールし、「認証」を選択します。
  8. 「トークン・ベース認証の使用」を有効にします。
  9. 「Add connection property」を選択します。
    • 名前: iam.db.token.scope
    • : IoTデータベース・トークン・スコープ(urn:oracle:db::id::<database-compartment-OCID>など)。
  10. 「プロキシ認証タイプ」「単一セッション」に設定します。
  11. 「プロキシ・クライアント・ユーザー名」<domainShortId>__WKSPに設定します。
  12. 「作成」を選択します。
ノート

「ユーザー名」フィールドは、最初に「データベース情報の入力」を選択すると、必要に応じて表示されます。「拡張オプション」でトークンベース認証を有効にすると、必須のユーザー名フィールドは不要になります。

接続文字列パターン:

tcps://adb.<region>.oraclecloud.com:1521/<database-service-name>.adb.<region>.oraclecloud.com

例:

tcps://adb.us-phoenix-1.oraclecloud.com:1521/g896eaa614b05d8_cx3garwvwsieq_low.adb.oraclecloud.com

ステップ4: データベース・ツール接続の検証

SQLワークシートまたはサポートされている別のデータベース・ツール統合から接続を使用する前に、接続を検証してください。

  1. 「データベース・ツール」で、ステップ3で作成した接続を開きます。
  2. 接続の「アクション」メニューを開きます。
  3. 「検証」を選択します。
  4. 検証結果を確認します。
  5. 検証に失敗した場合は、接続、プライベート・エンドポイント、ネットワーク、トークン・スコープ、認証またはプロキシ・ユーザー設定を編集し、再度検証します。

検証に成功すると、データベース・ツールがプライベート・エンドポイントおよびトークンベースの認証設定を使用してIoTドメイン・データベースにアクセスできることが確認されます。

ステップ5: SQLワークシートでの接続の使用

SQLワークシートは、データベース・ツール接続を使用する1つの方法です。コンソールからIoTデータに対してad hoc SQL問合せを実行する場合に使用します。

  1. 「データベース・ツール」「SQLワークシート」を選択します。
  2. ステップ4で検証した「接続」を選択します。
  3. 単純な問合せを実行して、セッションおよびスキーマ・コンテキストを確認します。
  4. 使用可能なIoTデータベース・オブジェクトを一覧表示します。
  5. IoT調査またはレポート・ワークフローに必要な問合せを実行します。
  6. 左側で、スキーマを選択し、ビューおよびを開いてIoTデータを表示します。

例:

select sys_context('USERENV', 'CURRENT_USER') as current_user,
       sys_context('USERENV', 'CURRENT_SCHEMA') as current_schema
from dual;

select table_name
from user_tables
order by table_name;

select *
from <iot-schema-or-view-name>
fetch first 10 rows only;

必要なデータがどのIoTスキーマ・オブジェクトに含まれているかわからない場合は、検出問合せから開始します。次に、デバイス、デジタル・ツイン・インスタンス、メトリック、イベント・タイプまたは時間範囲で問合せを絞り込みます。

FAQ

データベース・ツール接続を作成する前にIoTデータベース接続を直接設定する必要があるのはなぜですか。
データベース・ツールには、IoTドメイン・データベースのネットワーク・パス、トークン・スコープおよびデータベース接続文字列が引き続き必要です。ダイレクト接続ワークフローでは、データベース・ツール接続で使用されるVCN許可リスト、アイデンティティ許可リスト、データベース・トークン・スコープおよびデータベース接続文字列を構成します。
プライベート・エンドポイントで同じサブネットを使用する理由は何ですか。
プライベート・エンドポイントでは、Autonomous AI Databaseデータ・ホストに到達でき、ダイレクト・コネクト・ネットワーク設計の一部であるサブネットを使用する必要があります。同じ許可リスト・サブネットを使用すると、データベース・ツールは、IoTデータベース・アクセスに対して検証したのと同じプライベート・ネットワーク・パスに保持されます。
iam.db.token.scopeにはどの値を使用しますか。
IoTドメイン・グループの詳細からdb-token-scope値を使用します。値はurn:oracle:db::id::で始まり、データベース・コンパートメントOCIDで終わります(たとえば、urn:oracle:db::id::<database-compartment-OCID>)。
接続の作成時にユーザー名フィールドが表示されるのはなぜですか。
認証を構成する前に、「ユーザー名」フィールドを表示できます。「拡張オプション」を開き、「認証」を選択して、「トークン・ベース認証の使用」を有効にします。トークンベース認証を有効にすると、ユーザー名フィールドは不要になります。
どのプロキシ・クライアント・ユーザー名を入力する必要がありますか。
IoTドメインの短縮IDの後に__WKSPを続けて使用します(たとえば、<domainShortId>__WKSP)。このプロキシ・クライアント・ユーザーは、データベース・ツール・セッションをIoTドメイン・ワークスペース・ユーザーに接続します。
walletフォーマットがnoneに設定されているのはなぜですか。
この接続では、ウォレットレスTCPS接続文字列およびIAMトークンベース認証が使用されます。「Wallet format」「None」に設定して、接続がアップロードされたウォレット・ファイルを必要としないようにします。
この接続でSQLワークシートを使用する必要がありますか。
番号SQLワークシートは、データベース・ツール接続を使用できる1つのクライアントです。接続は再利用可能な接続定義であり、他のサポートされているデータベース・ツール・クライアントおよびOCIサービス(データベース・ツールの管理対象MCPサーバー、サポートされているOCI AIエージェント統合、データベース接続が必要なその他の統合など)でも選択できます。

トラブルシューティング

接続フォームにはまだユーザー名が必要です

「拡張オプション」にスクロールして「認証」を開き、トークン・ベース認証を有効にします。ユーザー名要件は、トークン認証の選択後に削除されます。

データベース・ツールはプライベート・エンドポイント経由で接続できません

プライベート・エンドポイントで、直接IoTデータベース接続が許可リストされているのと同じVCNおよびサブネットが使用されていることを確認します。サブネット・ルート表、サービス・ゲートウェイ・ルート、ネットワーク・セキュリティ・グループおよびエグレス・ルールを確認します。

トークン・スコープが拒否されました

IoTドメイン・グループの詳細からdb-token-scope値を使用します。値はurn:oracle:db::id::で始まります。表示名またはプレースホルダ(db_databaseなど)は入力しないでください。

プロキシ・セッションに、予想されるIoTオブジェクトが表示されません

プロキシ・クライアントのユーザー名を確認します。IoTドメインの短縮IDの後に__WKSPが続く(たとえば、<domainShortId>__WKSP)必要があります。IoTドメインに対して直接データ・アクセスが構成されていること、およびアイデンティティ・グループまたは動的グループが許可リストに登録されていることを確認します。

次の内容

  • IoTドメイン・データベース・スキーマを確認し、ワークフローに必要な表またはビューを特定します。
  • SQLワークシートからのデータベース・ツール接続、データベース・ツールの管理対象MCPサーバー、サポートされているOCI AIエージェント統合、またはサポートされている別のOCIサービス統合を使用します。
  • IoT MCPサーバー
  • 同じIoTデータに対して自然言語問合せ生成またはブラウザベースのSQLワークフローが必要な場合は、Select AIまたはAPEXを使用します。
  • 直接データベース問合せを使用してRAWレコードをカウントしたり、キューをサブスクライブしてRAWおよび正規化されたメッセージをリアルタイムでストリーミングしたりして、OCI IoTドメイン・データにアクセスするためのJavaサンプル