Autonomous AI DatabaseからWallet (mTLS)を使用したパブリックにアクセス可能なOracle Databaseへのデータベース・リンクの作成
Autonomous AI Databaseから、パブリック・エンドポイントにあるターゲットOracleデータベースへのデータベース・リンクを作成できます。
Autonomous AI Databaseでデータベース・リンクを使用するには、SSL付きTCP/IP (TCPS)認証を使用するようにターゲット・データベースを構成する必要があります。Autonomous AI Databaseは、デフォルトでSSL付きTCP/IP (TCPS)認証を使用するため、別のAutonomous AI Databaseにリンクするためにターゲット・データベースで追加の構成を行う必要はありません。その他のOracleデータベースは、SSL付きTCP/IP (TCPS)認証を使用するように構成する必要があります。詳細は、Oracle Database 19cセキュリティ・ガイドのSecure Sockets Layer認証の構成またはOracle Database 26aiセキュリティ・ガイドを参照してください。
パブリック・ターゲットへのデータベース・リンクを作成するには、ターゲットのOracle Databaseにアクセスできる必要があります。データベースによっては、アクセスが制限される場合があります(アクセス制御リストの使用など)。データベース・リンクを機能するように、ターゲット・データベースがソース・データベースからのアクセスを許可していることを確認してください。アクセス制御リスト(ACL)を使用してアクセスを制限すると、ソースAutonomous AI DatabaseのアウトバウンドIPアドレスを検索し、そのIPアドレスをターゲット・データベースに接続することを許可できます。
詳細は、Autonomous AIデータベースからDatabase Cloud Serviceインスタンスへのデータベース・リンクの作成方法を参照してください。
ウォレット(mTLS)を使用してターゲットOracleデータベースへのデータベース・リンクを作成するには:
-
ターゲット・データベースの証明書を含むターゲット・データベース・ウォレット
cwallet.ssoをオブジェクト・ストアにコピーします。ウォレット・ファイルについては、次の点に注意してください。
-
ウォレット・ファイルは、データベース・ユーザーIDおよびパスワードと組み合せて、ターゲットOracle Database内のデータにアクセスできます。ウォレット・ファイルは安全な場所に保存してください。ウォレット・ファイルは、権限のあるユーザーとのみ共有してください。
-
ウォレット・ファイルの名前を変更しないでください。オブジェクト・ストレージのウォレット・ファイルには、
cwallet.ssoという名前を付ける必要があります。
-
-
ウォレット・ファイル
cwallet.ssoを格納するオブジェクト・ストアにアクセスするための資格証明を作成します。様々なオブジェクト・ストレージ・サービスのusernameおよびpasswordパラメータの詳細は、「CREATE_CREDENTIALプロシージャ」を参照してください。 -
ウォレット・ファイル
cwallet.ssoのディレクトリをAutonomous AI Databaseに作成します。たとえば:
CREATE DIRECTORY *dblink_wallet_dir* AS '*directory_path_of_your_choice*';ディレクトリの作成の詳細は、「Autonomous AI Databaseでのディレクトリの作成」を参照してください。
-
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は、オブジェクト・ストアの資格証明です。次のステップでは、ターゲット・データベースにアクセスするための資格証明を作成します。 -
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パラメータの文字はすべて大文字である必要があります。この操作によって、資格証明が暗号化された形式でデータベースに格納されます。資格証明には任意の名前を使用できます。
-
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.atpc.example.oraclecloud.com', ssl_server_cert_dn => 'CN=atpc.example.oraclecloud.com,OU=Oracle BMCS FRANKFURT,O=Oracle Corporation,L=Redwood City,ST=California,C=US', 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などのエラーを報告します。 -
作成したデータベース・リンクを使用して、ターゲット・データベースのデータにアクセスします。
たとえば:
SELECT * FROM employees@SALESLINK;
ステップ5で作成した資格証明(ターゲット・データベースの資格証明)では、ターゲット・ユーザーのパスワードが変更された場合、ターゲット・ユーザーの資格証明が含まれる資格証明は、次のように更新できます:
BEGIN
DBMS_CLOUD.UPDATE_CREDENTIAL (
credential_name => 'DB_LINK_CRED',
attribute => 'PASSWORD',
value => '*password*' );
END;
/
ここで、passwordは新しいパスワードです。
この操作の後、この資格証明を使用する既存のデータベース・リンクは、データベース・リンクを削除して再作成しなくても引き続き機能します。
その他の情報については、次のWebサイトを参照してください。
ターゲットOracle Databaseでのデータベース・リンク・ノート
ターゲットOracleデータベースへのデータベース・リンクの作成に関するノートを提供します(ターゲットがAutonomous AIデータベースではない場合)
他のOracleデータベースへのデータベース・リンクに関するノート:
-
データベース・リンクで使用できるウォレット・ファイルは、ディレクトリごとに1つのみ有効です。ウォレット・ファイル用に選択したディレクトリに一度にアップロードできるのは1つの
cwallet.ssoのみです(DBLINK_WALLET_DIRなど)。つまり、DBLINK_WALLET_DIRのcwallet.ssoでは、そのディレクトリ内のウォレットが有効なデータベースへの データベース・リンクのみを作成できます。データベース・リンクで複数のcwallet.ssoファイルを使用するには、追加のディレクトリを作成し、各cwallet.ssoを異なるディレクトリに配置する必要があります。DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINKを使用してデータベース・リンクを作成する場合は、directory_nameパラメータでウォレットを含むディレクトリを指定します。ディレクトリの作成の詳細は、「Autonomous AI Databaseでのディレクトリの作成」を参照してください。
-
別のOracle Databaseへのデータベース・リンクでサポートされているターゲットOracleデータベース・バージョンは、19c、12.2.0および12.1.0です。
ノート:サポートされているバージョンの詳細は、「異なるOracleバージョンクライアント・サーバー相互運用性サポート・マトリックス(ドキュメントID 207303.1)」を参照してください。
-
Autonomous AI Databaseでは
SEC_CASE_SENSITIVE_LOGONパラメータがtrueに設定され、この値は変更できません。ターゲット・データベースがAutonomous AI Databaseでない場合は、ターゲット・データベースでSEC_CASE_SENSITIVE_LOGONパラメータをtrueに設定する必要があります。ターゲット・データベースでSEC_CASE_SENSITIVE_LOGONがfalseに設定されている場合、エラーORA-28040: No matching authentication protocolが発生します。 -
データベース・リンクをリストするには、
ALL_DB_LINKSビューを使用します。詳細は、『Oracle Database 19cデータベース・リファレンス』のALL_DB_LINKSに関する項または『Oracle Database 26aiデータベース・リファレンス』を参照してください。 -
ウォレット・ファイルは、データベース・ユーザーIDおよびパスワードと組み合せて、ターゲットOracleデータベース内のデータへのアクセスを可能にする。ウォレット・ファイルは安全な場所に保存してください。ウォレット・ファイルは、権限のあるユーザーとのみ共有してください。
-
Autonomous AI Databaseインスタンスがプライベート・エンドポイントにある場合、ターゲット・データベースを指定する2つのオプションがあります:
hostnameパラメータまたはrac_hostnamesパラメータのいずれかを使用します:-
プライベート・エンドポイント上のターゲットの場合、
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ホスト名の使用はサポートされていません。rac_hostnamesパラメータでホスト名のリストを指定すると、CREATE_DATABASE_LINKは、指定されたすべてのホスト名を接続文字列のアドレスとして使用します。指定したホストの1つがターゲットOracle RACデータベースで使用できない場合、Autonomous Databaseは自動的に、リストから別のホスト名を使用して接続を試みます。 -
DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINKは、hostnameまたはrac_hostnamesパラメータでlocalhostの値をサポートしていません。
-