DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK
を使用して、パブリック・エンドポイント上のAutonomous DatabaseインスタンスからOracle Database Gatewayへのデータベース・リンクを作成し、Oracle以外のデータベースにアクセスします。
パブリック・エンドポイントでAutonomous Databaseインスタンスからのデータベース・リンクを使用するには、Oracle Database Gatewayのターゲットが、TCP/IP with SSL (TCPS)認証を使用するように構成されている必要があります。詳細は、Secure Sockets Layer認証の構成を参照してください。
パブリック・エンドポイントのAutonomous DatabaseインスタンスからターゲットOracle Database Gatewayへのデータベース・リンクを作成するには:
- ターゲットのOracle Database Gatewayの自己署名ウォレットをオブジェクト・ストアにコピーします。たとえば、Oracle Database Gatewayの証明書を含む
cwallet.sso
をオブジェクト・ストアにコピーします。
ノート
ウォレット・ファイルをデータベースのユーザーIDおよびパスワードと組み合せることで、ターゲットOracle Database Gatewayを介して使用可能なデータにアクセスできます。ウォレット・ファイルは安全な場所に保存してください。ウォレット・ファイルは、権限のあるユーザーとのみ共有してください。
cwallet.sso
を格納するオブジェクト・ストアにアクセスするための資格証明を作成します。様々なオブジェクト・ストレージ・サービスのユーザー名およびパスワード・パラメータの詳細は、CREATE_CREDENTIALプロシージャを参照してください。
- Autonomous Databaseインスタンスに、ウォレット・ファイル
cwallet.sso
のディレクトリを作成します。
たとえば:
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
はバケット名です。詳細は、オブジェクト・ストレージ・ネームスペースの理解を参照してください。
このステップで使用するcredential_name
は、オブジェクト・ストアの資格証明です。次のステップでは、ターゲット・ゲートウェイにアクセスするための資格証明を作成します。
- 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
パラメータの文字はすべて大文字である必要があります。
この操作では、暗号化された形式で資格証明がデータベースに格納されます。資格証明名には任意の名前を使用できます。
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
を実行するには、権限が必要です。
- データベース・リンクを使用して、ターゲット・ゲートウェイのデータにアクセスします。
次に例を示します。
SELECT * FROM employees@SALESLINK;
ステップ5で作成した資格証明(Oracle Database Gatewayの資格証明)では、ターゲット・ユーザーのパスワードが変更された場合、ターゲット・ユーザーの資格証明を含む資格証明を次のように更新できます:
BEGIN
DBMS_CLOUD.UPDATE_CREDENTIAL
(
credential_name => 'DB_LINK_CRED',
attribute => 'PASSWORD',
value => 'password');
END;
/
ここで、passwordは新しいパスワードです。
この操作の後、この資格証明を使用する既存のデータベース・リンクは、データベース・リンクを削除して再作成しなくても引き続き機能します。
Microsoft SQL ServerデータベースにアクセスするためのOracle Database Gatewayへのデータベース・リンクを作成する方法の例は、次を参照してください:
Oracle Database Gatewayを使用してAutonomous DatabaseからOracle Databases以外にアクセスする方法
その他の情報については、次のWebサイトを参照してください。