シナリオ: データベース・ツールを使用したIoTデータへの接続
IoTドメイン・データベースへのプライベートなトークン認証済Oracle Database Tools接続を作成します。
IoTドメインに直接データベース接続を構成した後、IoTドメイン・データベースへの再利用可能なOracle データベース・ツール接続を作成します。接続では、IoTデータベース接続文字列、許可リストに登録されたサブネットのプライベート・エンドポイント、IAMトークン認証、およびIoTドメイン・ワークスペースのプロキシ・クライアント・ユーザーが使用されます。
データベース・ツール接続は、再利用可能な接続定義です。データベース・ツールで接続を検証し、サポートされているデータベース・ツール・クライアントおよびOCIサービス(SQLワークシート、データベース・ツールの管理対象MCPサーバー、サポートされているOCI AIエージェント統合、またはデータベースに接続する必要があるその他の統合など)で使用できます。
タスク
始める前に
次のものがあることを確認します。
- IoTドメイン・グループ・データ・アクセスの構成、IoTドメイン直接データ・アクセス、ネットワーキング・リソース、IAM動的グループ、要塞リソースおよびデータベース・ツール・リソースを構成する権限。
- ネットワーキング・リソースと同じリージョンのIoTドメイン・グループおよびIoTドメイン。
- IoTドメイン・グループOCID、IoTドメインOCID、データベース接続文字列、データベース・トークン・スコープおよびIoTドメイン短縮ID。これらの値は、ドメイン・グループおよびドメインの詳細ページで検索します。IoTドメイン・グループの詳細の取得およびIoTドメインの詳細の取得を参照してください。
- Autonomous AI Databaseデータ・ホストに到達できるサブネット。
- アイデンティティ・ドメインのユーザー・グループが直接データ・アクセスのためにIoTドメインにアクセスできるようにし、データベース・ツール・ファミリにアクセスできるようにするポリシー:
allow group <identity-domain-name>/<group-name> to use database-tools-family in compartment <dbtools-compartment>
プロキシ・クライアント・ユーザー名では、
<domainShortId>__WKSPという形式のIoTドメインの短縮IDが使用されます。ステップ1: IoTの直接データベース接続の構成
データベース・ツール接続を作成する前に、IoTデータベースへの直接アクセスを構成します。この設定により、プライベート・ネットワーク内の承認済リソースがIoTドメイン・データベースに接続できるようになります。
VCN、コンピュート、要塞、アイデンティティ動的グループ、SQLclの例など、プロセスまたはエンドツーエンドの設定の概要を次に示します(シナリオ: IoTデータベースへの直接接続を参照)。
データベース・ツールでは、このシナリオで作成したプライベート・エンドポイントが使用されます。ダイレクト・コネクト・シナリオの計算および要塞ステップは、CLI設定、トークン取得または検証のホストが必要な場合に使用されます。bastionパスを使用する場合、bastion SSH port forwardingコマンドはトンネルのみを開始し、その端末で実行し続けます。CLIツールをインストールするか、検証コマンドを実行する前に、転送されたローカル・ポートを使用してコンピュート・インスタンスにSSH接続するための別の端末を開きます。
- ナビゲーション・メニューを開き、「ネットワーキング」、「Virtual Cloud Networks」、「VCNの作成」の順に選択します。IoTドメイン・グループおよびIoTドメインと同じリージョンにVCNを作成します。
- VCNにプライベート・リージョナル・サブネットを作成します。サブネットのDNSホスト名を有効にします。
- VCNのサービス・ゲートウェイを作成し、Oracle Services Networkトラフィックをサービス・ゲートウェイに送信するルート・ルールを追加します。
- ネットワーク・セキュリティ・グループを作成または更新して、サブネット内のリソースがデータベース接続に必要なエグレス・トラフィックを送信できるようにします。
- VCN OCIDをIoTドメイン・グループ許可リストに追加します。
oci iot domain-group configure-data-accessコマンド、または同等のコンソールまたはAPIフローを使用します。 - IoTドメイン・グループ詳細を取得し、
db-connection-stringおよびdb-token-scope値を記録します。 - 直接データベース・アクセス用の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にアクセスします。
- ナビゲーション・メニューを開き、「開発者サービス」、「データベース・ツール」の順に選択します。
- 「プライベート・エンドポイントの作成」を選択します。
- IoT直接データベース接続を許可するコンパートメント、VCNおよびサブネットを選択します。
- ネットワーク設計でプライベート・エンドポイントを使用する場合、プライベート・エンドポイントに必要なネットワーク・セキュリティ・グループを選択します。
- 「作成」を選択し、プライベート・エンドポイントがアクティブになるまで待機します。
プライベート・エンドポイントは、データベース接続文字列のデータ・ホストに到達できる必要があります。データベース接続に直接ワークフローに複数のサブネットを作成した場合は、データベース・エグレスに必要なルートおよびセキュリティ・ルールを含むサブネットを使用します。
ステップ3: データベース・ツール接続の作成
IoTデータベース接続文字列、プライベート・エンドポイントおよびIAMトークン認証を使用するデータベース・ツール接続を作成します。
- 「データベース・ツール」で「接続の作成」を選択します。
- 「データベース情報の入力」を選択します。
- 「接続タイプ」で、「Oracle AI Database」を選択します。
- 「接続文字列」に、IoTドメイン・グループの詳細からデータベース接続文字列を入力します。
- 「プライベート・ネットワークを介したデータベースへのアクセス」を選択し、ステップ2で作成したプライベート・エンドポイントを選択します。
- 「Wallet format」を「None」に設定します。
- 「拡張オプション」までスクロールし、「認証」を選択します。
- 「トークン・ベース認証の使用」を有効にします。
- 「Add connection property」を選択します。
- 名前:
iam.db.token.scope - 値: IoTデータベース・トークン・スコープ(
urn:oracle:db::id::<database-compartment-OCID>など)。
- 名前:
- 「プロキシ認証タイプ」を「単一セッション」に設定します。
- 「プロキシ・クライアント・ユーザー名」を
<domainShortId>__WKSPに設定します。 - 「作成」を選択します。
「ユーザー名」フィールドは、最初に「データベース情報の入力」を選択すると、必要に応じて表示されます。「拡張オプション」でトークンベース認証を有効にすると、必須のユーザー名フィールドは不要になります。
接続文字列パターン:
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ワークシートまたはサポートされている別のデータベース・ツール統合から接続を使用する前に、接続を検証してください。
- 「データベース・ツール」で、ステップ3で作成した接続を開きます。
- 接続の「アクション」メニューを開きます。
- 「検証」を選択します。
- 検証結果を確認します。
- 検証に失敗した場合は、接続、プライベート・エンドポイント、ネットワーク、トークン・スコープ、認証またはプロキシ・ユーザー設定を編集し、再度検証します。
検証に成功すると、データベース・ツールがプライベート・エンドポイントおよびトークンベースの認証設定を使用してIoTドメイン・データベースにアクセスできることが確認されます。
ステップ5: SQLワークシートでの接続の使用
SQLワークシートは、データベース・ツール接続を使用する1つの方法です。コンソールからIoTデータに対してad hoc SQL問合せを実行する場合に使用します。
- 「データベース・ツール」で「SQLワークシート」を選択します。
- ステップ4で検証した「接続」を選択します。
- 単純な問合せを実行して、セッションおよびスキーマ・コンテキストを確認します。
- 使用可能なIoTデータベース・オブジェクトを一覧表示します。
- IoT調査またはレポート・ワークフローに必要な問合せを実行します。
- 左側で、スキーマを選択し、ビューおよび表を開いて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エージェント統合、データベース接続が必要なその他の統合など)でも選択できます。
トラブルシューティング
接続フォームにはまだユーザー名が必要です
データベース・ツールはプライベート・エンドポイント経由で接続できません
トークン・スコープが拒否されました
db-token-scope値を使用します。値はurn:oracle:db::id::で始まります。表示名またはプレースホルダ(db_databaseなど)は入力しないでください。プロキシ・セッションに、予想されるIoTオブジェクトが表示されません
__WKSPが続く(たとえば、<domainShortId>__WKSP)必要があります。IoTドメインに対して直接データ・アクセスが構成されていること、およびアイデンティティ・グループまたは動的グループが許可リストに登録されていることを確認します。次の内容
- IoTドメイン・データベース・スキーマを確認し、ワークフローに必要な表またはビューを特定します。
- SQLワークシートからのデータベース・ツール接続、データベース・ツールの管理対象MCPサーバー、サポートされているOCI AIエージェント統合、またはサポートされている別のOCIサービス統合を使用します。
- IoT MCPサーバー
- 同じIoTデータに対して自然言語問合せ生成またはブラウザベースのSQLワークフローが必要な場合は、Select AIまたはAPEXを使用します。
- 直接データベース問合せを使用してRAWレコードをカウントしたり、キューをサブスクライブしてRAWおよび正規化されたメッセージをリアルタイムでストリーミングしたりして、OCI IoTドメイン・データにアクセスするためのJavaサンプル。