Autonomous Databaseから別のAutonomous Databaseへの非TLSデータベース・リンクの作成

非TLSデータベース・リンクは、専用Exadataインフラストラクチャ上のAutonomous Databaseからプライベート・エンドポイント上のターゲットAutonomous Databaseに作成できます。

Autonomous DatabaseからターゲットのAutonomous Databaseへの非TLSデータベース・リンクの前提条件

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

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

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

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

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

    • ソース・データベースとターゲット・データベースが、ペアになっている異なるOracle Cloud Infrastructure VCN内にあります。

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

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

  • DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINKでは、hostnameパラメータの値localhostはサポートされていません。

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

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

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

ターゲットAutonomous Databaseへの非TLSデータベース・リンクの作成

非TLSデータベース・リンクは、専用Exadataインフラストラクチャ上のAutonomous Databaseからプライベート・エンドポイント上のターゲットAutonomous Databaseに作成できます。

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

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

  1. ターゲットAutonomous 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 => '1521',
             service_name => 'example_high.adb.oraclecloud.com',
             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ホスト名の使用をサポートします)。

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

    例に示すように、DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINKでウォレットなしのプライベート・エンドポイントにあるターゲット・データベースへのデータベース・リンクを作成するには、次のすべてが必要です:

    • 非TLS接続の場合、portパラメータ値は1521に設定する必要があります。ただし、AVMCのプロビジョニング中に別のSCANリスナー・ポート番号を選択した場合は、そのポート番号を使用する必要があります。詳細は、Autonomous Exadata VMクラスタの作成を参照してください。

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

    • ssl_server_cert_dnパラメータは省略することも、含める場合はNULL値を指定することもできます。

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

      ノート:

      private_targetパラメータをTRUEに設定すると、TCPSではなくTCPプロトコルを使用してデータベース・リンクが作成されるため、接続中にSSL証明書は検証されません。
  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プロシージャを参照してください。

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

別のAutonomous Databaseであるターゲットへのデータベース・リンクの作成に関するノートを提供します。

別のAutonomous Databaseへのデータベース・リンクに関するノート:

  • データベース・リンクで使用するウォレット・ファイルは、ディレクトリごとに1つのみ有効です。ウォレット・ファイル用に選択したディレクトリ(DBLINK_WALLET_DIRなど)に一度にアップロードできるのは1つのcwallet.ssoのみです。つまり、DBLINK_WALLET_DIRcwallet.ssoでは、ディレクトリ内のウォレットが有効なデータベースへのデータベース・リンクのみを作成できます。データベース・リンクで複数のcwallet.ssoファイルを使用するには、追加のディレクトリを作成し、各cwallet.ssoを異なるディレクトリに配置する必要があります。DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINKを使用してデータベース・リンクを作成する場合は、directory_nameパラメータでウォレットを含むディレクトリを指定します。

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

  • データベース・リンクをリストするには、ALL_DB_LINKSビューを使用します。詳細は、『Oracle Database 19cデータベース・リファレンス』ALL_DB_LINKSまたは『Oracle Database 23aiデータベース・リファレンス』を参照してください。

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

  • DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK入力では、ターゲット専用Autonomous Databaseのスキャン名をhostnameパラメータとして指定する必要があります。