パブリックからアクセス可能なOracle以外のデータベースへの顧客管理の異種間接続によるデータベース・リンクの作成

DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINKを使用して、Oracle Database Gatewayへのパブリック・エンドポイントにある専用Exadataインフラストラクチャ上のAutonomous AIデータベースからデータベース・リンクを作成し、Oracle以外のデータベースにアクセスします。

Oracle Database Gatewayは、Oracle以外の特定システムへのアクセス用に設計されたゲートウェイです。Oracle Database Gatewayを使用すると、データの場所や格納方法を知らなくても、分散データベース・システム上のすべての場所にあるデータにアクセスできます。Autonomous AI DatabaseでOracle Database Gatewayのデータベース・リンクを使用すると、異機種間環境がサポートされ、Oracle以外のシステムのデータにアクセスするようにアプリケーションをカスタマイズする必要がなくなります。

ノート:パブリックにアクセス可能な非Oracleデータベースへの顧客管理の異機種間接続によるデータベース・リンクの作成は、19cおよび23.6以上のバージョン19.25および23aiでのみサポートされています。

前提条件

パブリック・エンドポイントでAutonomous AI Databaseインスタンスからのデータベース・リンクを使用するには、次を実行します:

  1. Oracle以外のデータベースにアクセスするようにOracle Database Gatewayを構成します。詳細は、『Oracle Database 19c Database Heterogeneous Connectivityユーザーズ・ガイド』Oracle Database Gatewaysに関する項または『Oracle Database 26ai Database Heterogeneous Connectivityユーザーズ・ガイド』を参照してください。

    接続先のデータベースによっては、対応するインストレーションおよび構成ガイドおよびゲートウェイ・ユーザーズ・ガイドを参照できます。

    たとえば、Oracle Database Gateway for SQL Serverの場合は、次を参照してください:

  2. Oracle Database Gatewayで受信リクエストを処理するようにOracle Net Listenerを構成します。

  3. Oracle Database Gatewayで自己署名ウォレットを作成します。

  4. SSL付きTCP/IP (TCPS)認証を使用するようにターゲット・ゲートウェイを構成します。詳細は、『Oracle Database 19cセキュリティ・ガイド』Transport Layer Security認証の構成または『Oracle Database 26aiセキュリティ・ガイド』を参照してください。

手順

DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINKを使用して、Oracle以外のデータベースにアクセスするために、パブリック・エンドポイントのAutonomous AI DatabaseインスタンスからOracle Database Gatewayへのデータベース・リンクを作成します。

パブリック・エンドポイント上のAutonomous AI Databaseインスタンスからターゲット・ゲートウェイへのデータベース・リンクを作成するには:

  1. Oracle Database Gatewayの証明書を含むターゲット・ゲートウェイ自己署名付きウォレット(cwallet.ssoなど)をオブジェクト・ストアにコピーします。

    ノート:ウォレット・ファイルは、データベースのユーザーIDおよびパスワードと組み合せて、ターゲット・ゲートウェイを介して使用可能なデータへのアクセスを可能にします。ウォレット・ファイルは安全な場所に保存してください。ウォレット・ファイルは、権限のあるユーザーとのみ共有してください。

  2. cwallet.ssoを格納するオブジェクト・ストアにアクセスするための資格証明を作成します。様々なオブジェクト・ストレージ・サービスのユーザー名およびパスワード・パラメータの詳細は、「CREATE_CREDENTIAL」プロシージャを参照してください。

  3. ウォレット・ファイルcwallet.ssoのディレクトリをAutonomous AI Databaseに作成します。

    たとえば:

     CREATE DIRECTORY dblink_wallet_dir AS 'directory_path_of_your_choice';
    

    ディレクトリの作成の詳細は、「Autonomous AI Databaseでのディレクトリの作成」を参照してください。

  4. DBMS_CLOUD.GET_OBJECTを使用して、前のステップで作成したディレクトリDBLINK_WALLET_DIRにターゲット・ゲートウェイ自己署名付きウォレットをアップロードします。

    たとえば:

     BEGIN
         DBMS_CLOUD.GET_OBJECT(
             credential_name => 'DEF_CRED_NAME',
             object_uri => 'https://objectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname/o/cwallet.sso',
             directory_name => 'DBLINK_WALLET_DIR'
         );
      END;
    

    この例では、namespace-stringはOracle Cloud Infrastructureオブジェクト・ストレージ・ネームスペースで、bucketnameはバケット名です。詳細は、オブジェクト・ストレージ・ネームスペースの理解を参照してください。

    このステップで使用するcredential_nameは、オブジェクト・ストアの資格証明です。次のステップでは、ターゲット・ゲートウェイにアクセスするための資格証明を作成します。

    詳細は、「GET_OBJECTプロシージャおよびファンクション」を参照してください。

  5. Autonomous AI Databaseで、ターゲット・データベースにアクセスするための資格証明を作成します。DBMS_CLOUD.CREATE_CREDENTIALで指定するユーザー名およびパスワードは、データベース・リンク内で使用されるターゲット・データベースの資格証明です(ターゲット・データベースはOracle Database Gatewayを介してアクセスされます)。

    たとえば:

     BEGIN
         DBMS_CLOUD.CREATE_CREDENTIAL(
             credential_name => 'DB_LINK_CRED',
             username => 'NICK',
             password => 'password'
         );
     END;/
    

    credential_nameパラメータの指定は必須です。

    usernameパラメータの文字はすべて大文字である必要があります。

    この操作によって、資格証明が暗号化された形式でデータベースに格納されます。資格証明には任意の名前を使用できます。

  6. DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINKを使用して、ターゲット・ゲートウェイに対するデータベース・リンクを作成します。

    たとえば:

     BEGIN
         DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK(
             db_link_name =>       'SALESLINK',
             hostname =>           'example.com',
             port =>               '1522',
             service_name =>       'example_service_name',
             ssl_server_cert_dn => 'ssl_server_cert_dn',
             credential_name =>    'DB_LINK_CRED',
             directory_name =>     'DBLINK_WALLET_DIR',
             gateway_link =>        TRUE
         );
     END;/
    

    ADMIN以外のユーザーがDBMS_CLOUD_ADMIN.CREATE_DATABASE_LINKを実行するには、権限が必要です。

    詳細は、CREATE_DATABASE_LINKプロシージャを参照してください。

  7. 作成したデータベース・リンクを使用して、ターゲット・ゲートウェイのデータにアクセスします。

    たとえば:

     SELECT * FROM employees@SALESLINK;
    

ステップ5で作成した資格証明(Oracle Database Gatewayの資格証明)では、ターゲット・ユーザーのパスワードが変更された場合、ターゲット・ユーザーの資格証明を含む資格証明は、次のように更新できます:

BEGIN
  DBMS_CLOUD.UPDATE_CREDENTIAL(
    credential_name =>'DB_LINK_CRED',
    attribute =>'PASSWORD',
    value=>'password'
  );
END;
/

passwordは新しいパスワードです。

この操作の後、この資格証明を使用する既存のデータベース・リンクは、データベース・リンクを削除して再作成しなくても引き続き機能します。

詳細は、UPDATE_CREDENTIALプロシージャを参照してください。

Oracle Database Gatewayへのデータベース・リンクを作成してMicrosoft SQL Serverデータベースにアクセスする例は、「Oracle Database Gatewayを使用してAutonomous AIデータベースから非Oracle Databasesにアクセスする方法」を参照してください。

ノート:前述のブログではAutonomous AI Database Serverlessのコンテキストについて説明しますが、そのブログのすべてのコンテンツは、Autonomous AI Database on Dedicated Exadata Infrastructureにも適用されます。

関連コンテンツ

DBMS_CLOUD_ADMINパッケージ