Autonomous Databaseから別のAutonomous DatabaseへのTLSデータベース・リンクの作成
このコンテンツを正しく表示するには、JavaScriptを有効にする必要があります
Autonomous Databaseから別のAutonomous DatabaseへのTLSデータベース・リンクの作成
TLSデータベース・リンクは、専用Exadataインフラストラクチャ上のAutonomous Databaseからパブリック・エンドポイント上のターゲットAutonomous Databaseに作成できます。
Autonomous Databaseから別のAutonomous Databaseへの一方向TLSデータベース・リンクの作成
専用Exadataインフラストラクチャ上のAutonomous Databaseからパブリックにアクセス可能なAutonomous Databaseへの一方向TLSデータベース・リンクを作成できます。
パブリック・ターゲットへのデータベース・リンクを作成するには、ターゲット・データベースにアクセスできる必要があります。Autonomous Databaseを含む一部のデータベースでは、アクセスが制限される場合があります(アクセス制御リストの使用など)。データベース・リンクが機能するように、ターゲット・データベースでソース・データベースからのアクセスが許可されていることを確認してください。アクセス制御リスト(ACL)を使用してアクセスを制限すると、ソースAutonomous DatabaseのアウトバウンドIPアドレスを検索し、そのIPアドレスでターゲット・データベースに接続することを許可できます。ターゲット・データベースが別のAutonomous Databaseである場合、ターゲット・データベースのACLにソース・データベースのアウトバウンドIPアドレスを追加できます。
アウトバウンドIPアドレスの検索の詳細は、テナンシ詳細の取得を参照してください。
ウォレット(TLS)なしでターゲットAutonomous Databaseへのデータベース・リンクを作成するには:
- 一方向TLS接続が有効になっていることを確認します。
デフォルトでは、AVMCをプロビジョニングすると一方向TLS接続が有効になります。詳細は、Autonomous Exadata VMクラスタの作成を参照してください。
ノート:
専用Exadataインフラストラクチャ上のAutonomous Databaseでは、パブリックCAによって発行されたカスタムSSL証明書をインストールすることで、ウォレットレス接続が一方向TLSに対して機能します。詳細は、
「TLSウォレットレス接続の準備」を参照してください。
- データベース・リンクを作成するAutonomous Databaseインスタンスで、Autonomous 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
を使用して、ターゲットAutonomous Databaseインスタンスへのデータベース・リンクを作成します。
たとえば次のようにします。
BEGIN
DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK
(
db_link_name => 'SALESLINK',
hostname => 'adb.eu-frankfurt-1.oraclecloud.com',
port => '2484',
service_name => 'example_medium.atpc.example.oraclecloud.com',
credential_name => 'DB_LINK_CRED',
directory_name => NULL);
END;
/
ウォレットを使用しないセキュアなTCP接続を使用して、パブリック・エンドポイント上のターゲットAutonomous DatabaseへのDBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK
を含むデータベース・リンクを作成するには、directory_name
パラメータをNULL
にする必要があります。
TLS接続では、port
パラメータ値を2484に設定する必要があります。ただし、AVMCのプロビジョニング中に別のSCANリスナー・ポート番号を選択した場合は、そのポート番号を使用する必要があります。詳細は、Autonomous Exadata VMクラスタの作成を参照してください。
ssl_server_cert_dn
パラメータは省略することも、含める場合はNULL
値を指定することもできます。
ADMIN以外のユーザーには、DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK
を実行するための権限が必要です。
- 作成したデータベース・リンクを使用して、ターゲット・データベースのデータにアクセスします。
たとえば次のようにします。
SELECT * FROM employees@SALESLINK;
ステップ1で作成した資格証明(ターゲット・データベースの資格証明)では、ターゲット・ユーザーのパスワードが変更された場合、ターゲット・ユーザーの資格証明を含む資格証明を次のように更新できます:
BEGIN
DBMS_CLOUD.UPDATE_CREDENTIAL
(
credential_name => 'DB_LINK_CRED',
attribute => 'PASSWORD',
value => 'password' );
END;
/
ここで、passwordは新しいパスワードです。
この操作の後、この資格証明を使用する既存のデータベース・リンクは、データベース・リンクを削除して再作成しなくても引き続き機能します。
その他の情報については、次のWebサイトを参照してください。
Autonomous Databaseから別のAutonomous DatabaseへのmTLSデータベース・リンクの作成
専用Exadataインフラストラクチャ上のAutonomous Databaseからパブリックにアクセス可能なAutonomous DatabaseへのmTLSデータベース・リンクを作成できます。
パブリック・ターゲットへのデータベース・リンクを作成するには、ターゲット・データベースにアクセスできる必要があります。Autonomous Databaseを含む一部のデータベースでは、アクセスが制限される場合があります(アクセス制御リストの使用など)。データベース・リンクが機能するように、ターゲット・データベースでソース・データベースからのアクセスが許可されていることを確認してください。アクセス制御リスト(ACL)を使用してアクセスを制限すると、ソースAutonomous DatabaseのアウトバウンドIPアドレスを検索し、そのIPアドレスでターゲット・データベースに接続することを許可できます。たとえば、ターゲット・データベースが別のAutonomous Databaseである場合、ターゲット・データベースのACLにソース・データベースのアウトバウンドIPアドレスを追加できます。
アウトバウンドIPアドレスの検索の詳細は、テナンシ詳細の取得を参照してください。
ウォレット(mTLS)を使用してターゲットAutonomous Databaseへのデータベース・リンクを作成するには:
- mTLS接続が有効になっていることを確認します。
デフォルトでは、AVMCに対して一方向TLS接続が有効になります。AVMCのプロビジョニング中に「相互TLS (mTLS)認証の有効化」チェック・ボックスを選択して、相互TLS (mTLS)認証を有効にできます。詳細は、Autonomous Exadata VMクラスタの作成を参照してください。
- ターゲット・データベースの証明書を含むターゲット・データベース・ウォレット
cwallet.sso
をオブジェクト・ストアにコピーします。
ウォレット・ファイルについては、次の点に注意してください。
-
ウォレット・ファイルをデータベースのユーザーIDおよびパスワードとともに使用すると、ターゲットOracle Database内のデータにアクセスできます。ウォレット・ファイルは安全な場所に保存してください。ウォレット・ファイルは、権限のあるユーザーとのみ共有してください。
-
ウォレット・ファイルの名前を変更しないでください。オブジェクト・ストレージのウォレット・ファイルには、cwallet.sso
という名前を付ける必要があります。
- ウォレット・ファイル
cwallet.sso
を格納するオブジェクト・ストアにアクセスするための資格証明を作成します。様々なオブジェクト・ストレージ・サービスのusernameおよびpasswordパラメータの詳細は、CREATE_CREDENTIALプロシージャを参照してください。
- ウォレット・ファイル
cwallet.sso
のディレクトリをAutonomous Databaseに作成します。
たとえば次のようにします。
CREATE DIRECTORY dblink_wallet_dir AS 'directory_path_of_your_choice';
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
はバケット名です。詳細は、オブジェクト・ストレージ・ネームスペースの理解を参照してください。
- Autonomous 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 => '2484',
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
を実行するための権限が必要です。
TLS接続では、port
パラメータ値を2484に設定する必要があります。ただし、AVMCのプロビジョニング中に別のSCANリスナー・ポート番号を選択した場合は、そのポート番号を使用する必要があります。詳細は、Autonomous Exadata VMクラスタの作成を参照してください。
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サイトを参照してください。
Autonomous Databaseであるターゲットでのデータベース・リンク・ノート
別のAutonomous Databaseであるターゲットへのデータベース・リンクの作成に関するノートを提供します。
別のAutonomous Databaseへのデータベース・リンクに関するノート:
-
データベース・リンクで使用するウォレット・ファイルは、ディレクトリごとに1つのみ有効です。ウォレット・ファイル用に選択したディレクトリ(DBLINK_WALLET_DIRなど)に一度にアップロードできるのは1つのcwallet.sso
のみです。つまり、DBLINK_WALLET_DIRのcwallet.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パラメータとして指定する必要があります。