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

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

ノート:プライベート・エンドポイント上にあるターゲットOracleデータベースへのデータベース・リンクは、商用リージョンおよびUS Governmentリージョンでのみサポートされています。この機能は、すべての商用リージョンでデフォルトで有効になっています。この機能は、新しくプロビジョニングされたデータベースのUS Governmentリージョンでデフォルトで有効になっています。プライベート・エンドポイント上の既存のUS Governmentデータベースの場合、Autonomous AI DatabaseからUS Governmentリージョンのターゲットへのデータベース・リンクを作成する場合は、Oracle Cloud Supportでサービス・リクエストを申請し、政府リージョンのデータベース・リンク機能でプライベート・エンドポイントを有効化するようにリクエストできます。米国政府リージョンには、次のものがあります。

ターゲットOracleデータベースのタイプおよび構成に応じて、次の手順を実行します。

プライベート・エンドポイントでのAutonomous AI DatabaseからOracle Databasesへのデータベース、リンクの前提条件

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

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

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

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

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

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

ウォレットを使用しないセキュアな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である必要があります。

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

    たとえば:

    SELECT * FROM employees@PRIVATE_ENDPOINT_LINK;

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

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

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

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

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

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

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

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

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

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

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

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

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

  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;
    /

    プライベート・エンドポイント上のターゲットの場合、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;
    
    For the credentials you create in Step 5, the Oracle Database credentials, if the password of the target user changes you can update the credential that contains the target user's credentials as follows:

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

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

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

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

ターゲットOracle Databaseでのデータベース・リンク・ノート

ターゲットOracleデータベースへのデータベース・リンクの作成に関するノートを提供します(ターゲットがAutonomous AIデータベースではない場合)

他のOracleデータベースへのデータベース・リンクに関するノート:

DBMS_CLOUD_ADMINパッケージ