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

    たとえば:

    ```sql SELECT * FROM employees@PEDBLINK1;

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

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パッケージ