プライベート・エンドポイント上のOracle Databases以外への顧客管理の異機種間接続を使用したデータベース・リンクの作成

Autonomous DatabaseからOracle Database Gatewayへのデータベース・リンクを作成して、プライベート・エンドポイントにあるOracle以外のデータベースにアクセスできます。

この項では、データベース・リンクを使用して、Oracle Database以外がプライベート・エンドポイント上にあるOracle Database Gatewayを介してAutonomous DatabaseからOracle Database以外のデータベースに接続するステップについて説明します。

プライベート・エンドポイント上のOracle Databases以外への顧客管理の異機種間接続を使用してデータベース・リンクを作成するための前提条件

プライベート・エンドポイントにある非Oracle Databasesへの顧客管理の異機種間接続を備えたAutonomous Databaseからデータベース・リンクを作成するための前提条件をリストします。

プライベート・エンドポイントにあるOracle Databases以外への顧客管理の異機種間接続を使用してデータベース・リンクを作成するには:

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

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

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

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

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

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

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

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

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

ノート

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

プライベート・エンドポイント上のOracle Databases以外への顧客管理の異機種間接続(ウォレットなし)を使用したデータベース・リンクの作成

Autonomous DatabaseインスタンスからOracle Database Gatewayへのデータベース・リンクを作成して、プライベート・エンドポイントにあるOracle以外のデータベースにアクセスし、ウォレット(TCPS)またはウォレット(TLS)なしで接続できます。

プライベート・エンドポイント上のAutonomous DatabaseインスタンスからターゲットOracle Database Gatewayへのデータベース・リンクを作成し、ウォレット(TLS)なしで接続するには:

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

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

    たとえば:

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

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

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

  2. 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 =>      NULL,
              gateway_link =>        TRUE,
              private_target =>      TRUE,
              gateway_params =>      NULL);
    END;
    /

    接続がTCPベースのデータベース・リンク(ウォレットなし)として作成されている場合、ssl_server_cert_dnパラメータはオプションです。

    directory_nameNULLの場合、接続はTCPベースのデータベース・リンク(ウォレットなし)として作成されます。

    Oracle Database以外のターゲットがプライベート・エンドポイント上にある場合(つまり、データベース・リンクがVCN DNSサーバーで解決する必要があるホスト名にアクセスする場合)、private_targetパラメータをTRUEに設定する必要があります。private_targetTRUEの場合、hostnameパラメータは単一のホスト名である必要があります(プライベート・エンドポイントでは、IPアドレス、SCAN IPまたはSCANホスト名はサポートされていません)。

    gateway_linkTRUEで、gateway_paramsNULLの場合、データベース・リンクが顧客管理Oracleゲートウェイへのものであることを示します。

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

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

    たとえば:

    SELECT * FROM employees@SALESLINK;
    

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

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

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

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

その他の情報については、次のWebサイトを参照してください。

プライベート・エンドポイント上のOracle Databases以外への顧客管理の異機種間接続を使用したデータベース・リンクの作成(Walletを使用)

Autonomous DatabaseインスタンスからOracle Database Gatewayへのデータベース・リンクを作成して、プライベート・エンドポイントにあるOracle以外のデータベースにアクセスし、ウォレット(TCPS)またはウォレット(TLS)なしで接続できます。

プライベート・エンドポイント上のAutonomous DatabaseインスタンスからターゲットOracle Database Gatewayへのデータベース・リンクを作成し、ウォレットなしで接続するには:

  1. ターゲットのOracle Database Gatewayの自己署名ウォレットをオブジェクト・ストアにコピーします。たとえば、Oracle Database Gatewayの証明書を含むcwallet.ssoをオブジェクト・ストアにコピーします。

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

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

    たとえば:

    CREATE DIRECTORY dblink_wallet_dir AS 'directory_path_of_your_choice';
    

    ディレクトリの作成の詳細は、「Autonomous 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は、オブジェクト・ストアの資格証明です。次のステップでは、ターゲット・ゲートウェイにアクセスするための資格証明を作成します。
  5. Autonomous Databaseで、ターゲット・データベースにアクセスするための資格証明を作成します。DBMS_CLOUD.CREATE_CREDENTIALで指定するusernameおよびpasswordは、データベース・リンク内で使用されるターゲット・データベースの資格証明です(ターゲット・データベースはOracle Database Gatewayを介してアクセスされます)。

    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 =>       '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,
              private_target =>      TRUE,
              gateway_params =>      NULL);
    END;
    /

    directory_nameNULLでない場合は、TCPSベースのデータベース・リンクが作成されます。

    Oracle Database以外のターゲットがプライベート・エンドポイント上にある場合(つまり、データベース・リンクがVCN DNSサーバーで解決する必要があるホスト名にアクセスする場合)、private_targetパラメータをTRUEに設定する必要があります。private_targetTRUEの場合、hostnameパラメータは単一のホスト名である必要があります(プライベート・エンドポイントでは、IPアドレス、SCAN IPまたはSCANホスト名はサポートされていません)。

    gateway_linkTRUEで、gateway_paramsNULLの場合、データベース・リンクが顧客管理Oracleゲートウェイへのものであることを示します。

    ADMIN以外のユーザーがDBMS_CLOUD_ADMIN.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は新しいパスワードです。

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

その他の情報については、次のWebサイトを参照してください。