Autonomous AI Databaseからプライベート・エンドポイント上のOracle AI Databaseへのデータベース・リンクの作成

Autonomous AI Databaseから、プライベート・エンドポイントにあるターゲットOracle AI Databaseへのデータベース・リンクを作成できます。

ターゲットのOracle AI Databaseのタイプおよび構成に応じて、次のようになります。

詳細は、Autonomous AIデータベースからDatabase Cloud Serviceインスタンスへのデータベース・リンクの作成方法を参照してください。

前提条件

Autonomous AI Databaseからプライベート・エンドポイントにあるターゲットOracle AI Databaseへのデータベース・リンクを作成するための前提条件をリストします。

プライベート・エンドポイント上のターゲットOracle AI Databaseへのデータベース・リンクを作成するには:

  • ターゲット・データベースは、ソース・データベースのOracle Cloud Infrastructure VCNからアクセスできる必要があります。たとえば、次の場合にターゲット・データベースに接続できます。

    • ターゲット・データベースはプライベート・エンドポイント上にあります。

    • ソース・データベースとターゲット・データベースの両方が、同じOracle Cloud Infrastructure VCNに存在します。

    • ソース・データベースとターゲット・データベースは、ペアになっている別のOracle Cloud Infrastructure VCNsにあります。

    • ターゲット・データベースは、FastConnectまたはVPNを使用してソース・データベースのOracle Cloud Infrastructure VCNに接続されているオンプレミス・データベースです。

  • ターゲット・データベースを指定する2つのオプションがあり、hostnameパラメータまたはrac_hostnamesパラメータを使用します。

    • プライベート・エンドポイント上のターゲットの場合、DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINKでは、hostnameパラメータを使用した単一のホスト名の指定がサポートされています。プライベート・エンドポイントでは、IPアドレス、SCAN IPまたはSCANホスト名の使用はサポートされていません(ターゲットがパブリック・エンドポイント上にある場合、CREATE_DATABASE_LINKはIPアドレス、SCAN IPまたはSCANホスト名の使用をサポートしています)。

    • ターゲットがOracle RACデータベースの場合は、rac_hostnamesパラメータを使用して、DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINKで1つ以上のホスト名を指定します。これにより、Oracle RACの高可用性機能を利用できます。rac_hostnames値でのIPアドレス、SCAN IPまたはSCANホスト名の使用はサポートされていません。

      rac_hostnamesパラメータでホスト名のリストを指定すると、CREATE_DATABASE_LINKは、指定されたすべてのホスト名を接続文字列のアドレスとして使用します。指定されたホストの1つがターゲットOracle RACデータベースで使用できない場合、Autonomous AI Databaseは、リストから別のホスト名を使用して自動的に接続を試みます。

  • プライベート・エンドポイントには、次のイングレスおよびエグレス・ルールを定義する必要があります:

    • ソース・データベースのサブネット・セキュリティ・リストまたはネットワーク・セキュリティ・グループにエグレス・ルールを定義して、TCPを介したトラフィックがターゲット・データベースのIPアドレスおよびポート番号に対して許可されるようにします。

    • ソース・データベースのIPアドレスから宛先ポートへのTCP経由のトラフィックが許可されるように、ターゲット・データベースのサブネット・セキュリティ・リストまたはネットワーク・セキュリティ・グループにイングレス・ルールを定義します。

    イングレスおよびエグレス・ルールを使用したプライベート・エンドポイントの構成の詳細は、プライベート・エンドポイントを使用したネットワーク・アクセスの構成を参照してください。

ノート

ノート: Autonomous AI Databaseインスタンスがプライベート・エンドポイントで構成されている場合、ROUTE_OUTBOUND_CONNECTIONSデータベース・プロパティを設定して、すべての送信データベース・リンクがAutonomous AI Databaseインスタンスのプライベート・エンドポイントVCNのエグレス・ルールに従うことを指定します。詳細は、プライベート・エンドポイントを使用したアウトバウンド接続のセキュリティの強化を参照してください。

Walletを使用しないプライベート・エンドポイントでのOracle AIデータベースへのデータベース・リンクの作成

DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINKを使用して、Autonomous AI Databaseから、プライベート・エンドポイント上にあるターゲットOracle AI Databaseへのデータベース・リンクを作成し、ウォレット(TCP)なしで接続します。

ノート

ノート:このオプションは、プライベート・エンドポイントにあり、SSL/TCPSが構成されていないターゲットOracle AIデータベース用です。

必要に応じて、前提条件ステップを実行します。詳細は、Autonomous AI Databaseからプライベート・エンドポイント上のOracle AIデータベースへのデータベース・リンクの前提条件を参照してください。

ウォレットを使用せずにセキュアなTCP接続を使用して、プライベート・エンドポイント上のターゲット・データベースへのデータベース・リンクを作成するには:

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

    次に例を示します:

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

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

    ノート

    ノート:データベース・リンクのターゲット・データベース資格証明には、ボールト・シークレット資格証明を使用できます。詳細は、ボールト・シークレット資格証明の使用を参照してください。

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

  2. DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINKを使用して、ターゲット・データベースのデータベース・リンクを作成します。

    次に例を示します:

    BEGIN
      DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK(
        db_link_name => 'PRIVATE_ENDPOINT_LINK',
        hostname => 'exampleHostname',
        port => '1522',
        service_name => '*exampleServiceName*',
        ssl_server_cert_dn => NULL,
        credential_name => 'PRIVATE_ENDPOINT_CRED',
        directory_name => NULL,
        private_target => TRUE
      );
    END;
    /

    プライベート・エンドポイント上のターゲットの場合、DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINKでは、hostnameパラメータを使用した単一のホスト名の指定がサポートされています。プライベート・エンドポイントでは、IPアドレス、SCAN IPまたはSCANホスト名の使用はサポートされていません(ターゲットがパブリック・エンドポイント上にある場合、CREATE_DATABASE_LINKはIPアドレス、SCAN IPまたはSCANホスト名の使用をサポートしています)。

    ターゲットがOracle RACデータベースの場合は、rac_hostnamesパラメータを使用して、DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINKで1つ以上のホスト名を指定します。これにより、Oracle RACの高可用性機能を利用できます。rac_hostnames値でのIPアドレス、SCAN IPまたはSCANホスト名の使用はサポートされていません。

    たとえば、ターゲットOracle RACデータベースでは、rac_hostnamesパラメータを使用します。

    BEGIN
         DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK(
             db_link_name => 'PRIVATE_ENDPOINT_LINK',
             rac_hostnames => '["sales1-svr1.example.adb.us-ashburn-1.oraclecloud.com",
                                "sales1-svr2.example.adb.us-ashburn-1.oraclecloud.com",
                                "sales1-svr3.example.adb.us-ashburn-1.oraclecloud.com"]',
             port => '1522',
             service_name => '*exampleServiceName*',
             ssl_server_cert_dn => NULL,
             credential_name => 'PRIVATE_ENDPOINT_CRED',
             directory_name => NULL,
             private_target => TRUE);
    END;
    /

    DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINKは、hostnameまたはrac_hostnamesパラメータでlocalhostの値をサポートしていません。

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

    例に示すように、ウォレットのないセキュアなTCP接続を使用して、プライベート・エンドポイント上のターゲット・データベースへのDBMS_CLOUD_ADMIN.CREATE_DATABASE_LINKを含むデータベース・リンクを作成するには、次のすべてが必要です。

    • directory_nameパラメータはNULLである必要があります。

    • ssl_server_cert_dnパラメータはNULLである必要があります。

    • private_targetパラメータはTRUEである必要があります。

      ノート

      ノート: ROUTE_OUTBOUND_CONNECTIONSデータベース・プロパティを設定する場合、このAPIでは、private_targetパラメータをTRUEに設定する必要はありません。詳細は、プライベート・エンドポイントを使用したアウトバウンド接続のセキュリティの強化を参照してください。

  3. 作成したデータベース・リンクを使用すると、ターゲット・データベースのデータにアクセスできます。

    次に例を示します:

    SELECT * FROM employees@PRIVATE_ENDPOINT_LINK;
    ノート

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

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

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

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

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

Autonomous AI DatabaseからWallet (mTLS)を使用したプライベート・エンドポイント上のOracle AIデータベースへのデータベース・リンクの作成

Autonomous AI Databaseから、プライベート・エンドポイントにあるターゲットOracle AI Databaseへのデータベース・リンクを作成できます。

ノート

ノート:このオプションは、SSL/TCPSが構成され、プライベート・エンドポイント上にあるターゲットOracle AIデータベース用です。

ターゲットのOracle AI DatabaseにSSL/TCPSが構成されていない場合は、次の2つのオプションがあります。

必要に応じて、前提条件ステップを実行します。詳細は、Autonomous AI Databaseからプライベート・エンドポイント上のOracle AIデータベースへのデータベース・リンクの前提条件を参照してください。

SSL付きTCP/IP (TCPS)認証を使用してプライベート・エンドポイント上のターゲットOracle AI Databaseへのデータベース・リンクを作成するには:

  1. ターゲット・データベースの証明書を含むターゲット・データベース・ウォレットcwallet.ssoをオブジェクト・ストアにコピーします。

    ノート

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

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

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

    次に例を示します:

     CREATE DIRECTORY WALLET_DIR AS 'directory_path_of_your_choice';

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

  4. DBMS_CLOUD.GET_OBJECTを使用して、前のステップで作成したディレクトリ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 => 'WALLET_DIR');
    END;
    /

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

    ノート

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

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

    ノート

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

    次に例を示します:

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

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

    ノート

    ノート:データベース・リンクのターゲット・データベース資格証明には、ボールト・シークレット資格証明を使用できます。詳細は、ボールト・シークレット資格証明の使用を参照してください。

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

  6. DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINKを使用して、ターゲット・データベースのデータベース・リンクを作成します。

    次に例を示します:

    BEGIN
      DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK(
        db_link_name => 'PEDBLINK1',
        hostname => 'example1.adb.ap-osaka-1.oraclecloud.com',
        port => '1522',
        service_name => '*example_high.adb.oraclecloud.com*',
        ssl_server_cert_dn => '*ssl_server_cert_dn*',
        credential_name => 'DB_LINK_CRED',
        directory_name => 'WALLET_DIR',
        private_target => TRUE);
    END;
    /

    ノート

    ノート: ROUTE_OUTBOUND_CONNECTIONSデータベース・プロパティを設定する場合、このAPIでは、private_targetパラメータをTRUEに設定する必要はありません。詳細は、プライベート・エンドポイントを使用したアウトバウンド接続のセキュリティの強化を参照してください。

    プライベート・エンドポイント上のターゲットの場合、DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINKでは、hostnameパラメータを使用した単一のホスト名の指定がサポートされています。プライベート・エンドポイントでは、IPアドレス、SCAN IPまたはSCANホスト名の使用はサポートされていません(ターゲットがパブリック・エンドポイント上にある場合、CREATE_DATABASE_LINKはIPアドレス、SCAN IPまたはSCANホスト名の使用をサポートしています)。

    ターゲットがOracle RACデータベースの場合は、rac_hostnamesパラメータを使用して、DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINKで1つ以上のホスト名を指定します。これにより、Oracle RACの高可用性機能を利用できます。rac_hostnames値でのIPアドレス、SCAN IPまたはSCANホスト名の使用はサポートされていません。

    たとえば、ターゲットOracle RACデータベースでは、rac_hostnamesパラメータを使用します。

    BEGIN
      DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK(
        db_link_name => 'PEDBLINK1',
        rac_hostnames => '["sales1-svr1.example.adb.us-ashburn-1. oraclecloud.com",
                           "sales1-svr2.example.adb.us-ashburn-1.oraclecloud.com",
                           "sales1-svr3.example.adb.us-ashburn-1.oraclecloud.com"]',
        port => '1522',
        service_name => '*example_high.adb.oraclecloud.com*',
        ssl_server_cert_dn => '*ssl_server_cert_dn*',
        credential_name => 'DB_LINK_CRED',
        directory_name => 'WALLET_DIR',
        private_target => TRUE);
    END;
    /

    DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINKは、hostnameまたはrac_hostnamesパラメータでlocalhostの値をサポートしていません。

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

  7. 作成したデータベース・リンクを使用すると、ターゲット・データベースのデータにアクセスできます。

    次に例を示します:

    SELECT * FROM employees@PEDBLINK1;
    ノート

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

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

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

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

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