機械翻訳について

顧客管理の異機種間接続によるパブリック・アクセス可能なデータベース・リンクの作成Non-Oracle Databases

DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINKを使用して、パブリック・エンドポイントのAutonomous DatabaseインスタンスからOracle Databaseゲートウェイへのデータベース・リンクを作成し、Oracle以外のデータベースにアクセスします。

パブリック・エンドポイントでAutonomous Databaseインスタンスからのデータベース・リンクを使用するには、Oracle Databaseゲートウェイのターゲットを、SSL (TCPS)認証でTCP/IPを使用するように構成する必要があります。 詳細については、「Secure Sockets Layer認証の構成」を参照してください。

パブリック・エンドポイントのAutonomous DatabaseインスタンスからターゲットOracle Databaseゲートウェイへのデータベース・リンクを作成するには:

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

    ノート:

    ウォレット・ファイルは、データベース・ユーザーIDとパスワードとともに、ターゲットOracle Databaseゲートウェイを介して使用可能なデータへのアクセスを提供します。 ウォレット・ファイルを安全な場所に保存します。 ウォレット・ファイルは、許可されたユーザーとのみ共有します。
  2. cwallet.ssoを格納するオブジェクト・ストアにアクセスするための資格証明を作成します。 様々なオブジェクト・ストレージ・サービスのusernameおよびpasswordパラメータの詳細は、「CREATE_CREDENTIALプロシージャ」を参照してください。
  3. ウォレット・ファイルcwallet.ssoAutonomous 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ゲートウェイを介してアクセスされます)。

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

    ADMIN以外のユーザーは、DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINKの実行権限を必要とします。

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

    たとえば:

    SELECT * FROM employees@SALESLINK;
    

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

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

「パスワード」は新しいパスワードです。

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

Oracle Database Gatewayへのデータベース・リンクを作成してMicrosoft SQL Serverデータベースにアクセスする方法の例は、次を参照してください:

Oracle Database Gatewayを使用してAutonomous DatabaseからNon-Oracle Databasesにアクセスする方法

追加情報