Autonomous AI DatabaseからWallet(mTLS)を使用したパブリック・アクセス可能なOracle AI Databaseへのデータベース・リンクの作成

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

Autonomous AI Databaseでデータベース・リンクを使用するには、SSL付きTCP/IP (TCPS)認証を使用するようにターゲット・データベースを構成する必要があります。Autonomous AI Databaseは、デフォルトでSSL付きTCP/IP (TCPS)認証を使用するため、別のAutonomous AI Databaseにリンクするためにターゲット・データベースで追加の構成を行う必要はありません。その他のOracle AIデータベースは、SSL付きTCP/IP (TCPS)認証を使用するように構成する必要があります。詳細は、「Secure Sockets Layer認証の構成」を参照してください。

パブリック・ターゲットへのデータベース・リンクを作成するには、ターゲットのOracle AI Databaseにアクセスできる必要があります。データベースによっては、アクセスが制限される場合があります(アクセス制御リストの使用など)。データベース・リンクを機能するように、ターゲット・データベースがソース・データベースからのアクセスを許可していることを確認してください。アクセス制御リスト(ACL)を使用してアクセスを制限すると、ソースAutonomous AI DatabaseのアウトバウンドIPアドレスを検索し、そのIPアドレスをターゲット・データベースに接続することを許可できます。

詳細は、Autonomous AIデータベースからDatabase Cloud Serviceインスタンスへのデータベース・リンクの作成方法を参照してください。

ウォレット(mTLS)を使用してターゲットOracle AI Databaseへのデータベース・リンクを作成するには:

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

    ウォレット・ファイルについては、次の点に注意してください。

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

    • ウォレット・ファイルの名前を変更しないでください。オブジェクト・ストレージのウォレット・ファイルには、cwallet.ssoという名前を付ける必要があります。

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

    リソース・プリンシパル資格証明を有効にする場合、Oracle Cloud Infrastructureオブジェクト・ストアにアクセスするための資格証明の作成は必要ありません。詳細は、リソース・プリンシパルを使用したOracle Cloud Infrastructureリソースへのアクセスを参照してください。

  3. ウォレット・ファイルcwallet.ssoのディレクトリをAutonomous AI Databaseに作成します。

    次に例を示します:

    CREATE DIRECTORY dblink_wallet_dir AS 'directory_path_of_your_choice';

    ディレクトリの作成の詳細は、「Autonomous AI 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は、オブジェクト・ストアの資格証明です。次のステップでは、ターゲット・データベースにアクセスするための資格証明を作成します。

    リソース・プリンシパル資格証明を有効にする場合、Oracle Cloud Infrastructureオブジェクト・ストアにアクセスするための資格証明の作成は必要ありません。詳細は、リソース・プリンシパルを使用したOracle Cloud Infrastructureリソースへのアクセスを参照してください。

  5. Autonomous AI Databaseインスタンスで、ターゲット・データベースにアクセスするための資格証明を作成します。DBMS_CLOUD.CREATE_CREDENTIALで指定したusernameおよびpasswordは、データベース・リンクの作成に使用するターゲット・データベースの資格証明になります。

    ノート

    ノート: 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 => 'adb.eu-frankfurt-1.oraclecloud.com',
            port => '1522',
            service_name => 'example_medium.adb.example.oraclecloud.com',
            credential_name => 'DB_LINK_CRED',
            directory_name => 'DBLINK_WALLET_DIR');
    END;
    /

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

    directory_nameで指定されたディレクトリ内のウォレット・ファイルがcwallet.ssoでない場合、プロシージャはORA-28759: failure to open fileなどのエラーを報告します。

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

    次に例を示します:

    SELECT * FROM employees@SALESLINK;

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

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

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

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

ノート

ノート: DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINKを使用してビッグ・データ・サービスへのリンクを作成できます。詳細は、「Autonomous AI DatabaseからのBig Data Service Hadoop (HDFS)データの問い合せ」を参照してください。

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