Autonomous Database上の読取り専用データへのアクセスに対するクラウド・リンクの使用
クラウド・リンクは、Autonomous Databaseインスタンス上の読取り専用データにリモートでアクセスするためのクラウドベースの方法を提供します。
- Autonomous Databaseでのクラウド・リンクについて
データ所有者は、データ所有者が定義したとおりに、選択したオーディエンスのリモート・アクセス用の表またはビューを登録します。その後、登録時にアクセス権が付与されたユーザーがデータにアクセスできるようになります。クラウド・リンクを設定するためにこれ以上のアクションは必要ありません。データを表示してアクセスするユーザーは、データを検出して操作できます。 - データベース・ユーザーのクラウド・リンク・アクセス権の付与
ADMINユーザーは、データ・セットを登録する権限をデータベース・ユーザーに付与します。また、ADMINユーザーは、登録されたデータ・セットにアクセスする権限をデータベース・ユーザーに付与します。 - データ・セットの登録または登録解除
所有する表またはビューを登録済データ・セットとして登録できます。データ・セットを削除または置換する場合は、そのデータ・セットを登録解除する必要があります。 - 別のリージョンへのデータ・セットの登録または登録解除
ソース・リージョンにデータ・セットのソース・データベースが含まれ、1つ以上のリモート・リージョンにソース・データベースのリフレッシュ可能なクローンが含まれている複数のリージョンでクラウド・リンクを使用できます。 - 認可必須へのデータ・セットの登録
オプションで、データ・セットを登録するときに、スコープに加えて、データ・セットへのアクセスにデータベース・レベルの認可が必要であることを指定できます。 - データ・セット・アクセスのオフロード・ターゲットへのデータ・セットの登録
オプションで、データ・セットを登録するときに、リフレッシュ可能なクローンである1つ以上のAutonomous Databaseインスタンスにデータ・セットへのアクセスをオフロードできます。 - 読取り専用Autonomous Databaseインスタンスからのクラウド・リンクの使用
データ・セットが読取り専用Autonomous Databaseインスタンス上にある場合、クラウド・リンクを共有できます。 - データ・セットの検索およびクラウド・リンクの使用
クラウド・リンクの読取りアクセス権を付与されたユーザーは、Autonomous Databaseインスタンスで使用可能なデータ・セットを検索し、問合せで登録済データ・セットにアクセスして使用できます。 - クラウド・リンク・コンシューマのキャッシュの有効化
問合せの結果、またはクラウド・リンク・データにアクセスする問合せフラグメントのデータ・セット・コンシューマでキャッシュを有効にできます。 - データベース・ユーザーのクラウド・リンク・アクセスの取消し
ADMINユーザーは、登録を取り消して、ユーザーがリモート・アクセス用のデータ・セットを登録できないようにできます。ADMINユーザーは、登録済データ・セットにアクセスする権限またはデータベース・ユーザーを取り消すこともできます。 - クラウド・リンク情報のモニターおよび表示
Autonomous Databaseには、クラウド・リンクをモニターおよび監査できるビューが用意されています。 - 登録済データ・セットを保護するための仮想プライベート・データベース・ポリシーの定義
登録済データ・セットの仮想プライベート・データベース(VPD)ポリシーを定義することで、特定のリモート・サイトに対してデータ(行)のサブセットのみが表示されるように、きめ細かいクラウド・リンク・アクセス制御を提供できます。 - クラウド・リンクに関するノート
クラウド・リンクの使用に関するノートおよび制限を提供します。
親トピック: データ共有
Autonomous Databaseでのクラウド・リンクについて
クラウド・リンクを使用すると、データ所有者は、データ所有者が定義したとおりに、選択したオーディエンスのリモート・アクセス用の表またはビューを登録します。その後、登録時にアクセス権が付与されたユーザーがデータにアクセスできるようになります。クラウド・リンクを設定するためにこれ以上のアクションは必要ありません。データを表示してアクセスするユーザーは、データを検出して操作できます。
クラウド・リンクの実装では、Oracle Cloud Infrastructureのアクセス・メカニズムを利用して、特定のスコープ内でデータにアクセスできるようにします。「スコープ」は、データにリモートでアクセスできます。有効範囲は、データベースが存在するリージョン、個々のテナンシ、コンパートメントなどの様々なレベルに設定できます。また、データ・セットにアクセスするための認可が1つ以上のAutonomous Databaseインスタンスに制限されるように指定できます。
ソース(データ・セット所有者の)Autonomous Databaseインスタンスから1つ以上のクロスリージョン・リフレッシュ可能クローンを作成することで、クラウド・リンクを使用して複数のリージョン間でデータを共有できます。
クラウド・リンクは、従来のデータベース・リンク・メカニズムと比較して、Autonomous Databaseインスタンス間での表またはビューの共有を大幅に簡素化します。クラウド・リンクを使用すると、複雑なデータベース・リンクの設定を必要とせずにデータを検出できます。Autonomous Databaseは、SQLを使用した透過的アクセスを提供し、クラウド・リンク・スコープおよび個々のAutonomous Databaseインスタンスに認可を付与することで、権限の強制を実装します。
クラウド・リンクでは、リモートからアクセス可能にするデータのリージョン・ネームスペースおよび名前の概念を紹介します。これは、"LWARD"
など、ネームスペース(スキーマ)に存在する"EMP"
など、表が存在する既存のOracle表と同様です。LWARD.EMP
はデータベース内に1つのみ存在できます。クラウド・リンクは、リージョン・レベルで同様のネームスペースと名前を提供します。これは、単一のデータベースには関連付けられていませんが、スコープおよびオプションでデータベース認可で指定された多くのAutonomous Databaseインスタンスに適用されます。
たとえば、ネームスペースFOREST
の下にデータ・セットを登録し、セキュリティ上の目的、またはネーミングを容易にする目的で、元のスキーマ名およびオブジェクト名以外のネームスペースと名前を指定できます。この例では、TREE_DATA
は登録済データ・セットの表示可能な名前であり、この名前はソース表の名前である必要はありません。ネームスペースおよび名前に加えて、cloud$link
キーワードは、ソースをクラウド・リンクとして解決する必要があることをデータベースに示します。
登録されたデータ・セットにアクセスするには、SELECT
文のFROM
句にネームスペース、名前およびcloud$link
キーワードを含めます。
SELECT county, species, height FROM FOREST.TREE_DATA@cloud$link;
オプションで、1つ以上のデータベースからデータ・セットへのアクセスをリフレッシュ可能クローンにオフロードするように指定できます。コンシューマAutonomous Databaseがデータ・セットのオフロード・リストにリストされると、データ・セットへのアクセスはリフレッシュ可能クローンに送られます。
クラウド・リンクの使用時に使用する概念と用語はいくつかあります。
-
登録済データ・セット(データ・セット): Autonomous Databaseでリモート・アクセスが有効になっている表またはビューを識別します。登録されたデータ・セットは、データ・セット(スコープ)へのアクセスを許可されるユーザーも示します。データ・セット登録では、クラウド・リンクで使用するネームスペースと名前を定義します。データ・セット登録後、これらの値はまとめてリモート・アクセスの完全修飾名(FQN)を指定し、クラウド・リンクがデータ・セットのアクセシビリティを管理できるようにします。
-
データ・セット所有者: データ・セットに関する質問の窓口を提供するデータ・セット所有者を指定します。
-
スコープ: 登録されたデータ・セットへのアクセスを許可されるユーザーおよび場所を指定します。スコープの詳細は、データ・セットのスコープ、アクセス制御および認可を参照してください。
-
OCID (Oracle Cloud Identifier): 特定のテナンシ、コンパートメントまたはデータベースを識別します。登録済データ・セットのスコープは、OCIDsで表すことができます。詳細は、リソース識別子を参照してください。
-
データ登録: データ登録では、ユーザーは表またはビューをリモート・アクセスに使用可能にし、スコープによって課されるアクセス制限の対象となり、オプションで追加の認可ステップの対象となります。データベースに格納されている表またはビュー、またはオブジェクト・ストアに格納されているデータに対するクラウド・リンクによるリモート・アクセスを許可できます。
-
データ検出: 登録済データ・セットは、データベースからのテキスト問合せを使用して検出できます。この検出では、データ・セットにアクセスする権限がある場合にのみデータ・セットが表示されます。登録済データ・セットを名前または摘要で検索できます。
-
データ記述: ユーザーは、登録済データ・セットとして使用可能な表またはビューの説明またはメタデータを取得できます。
-
オフロード・ターゲット: オプションで、1つ以上のオフロード・ターゲットを指定できます。オフロード・ターゲットは、クラウド・リンクのデータ・セットを指定されたAutonomous Databaseインスタンスに提供するリフレッシュ可能なクローンです。オフロード・ターゲットを指定することで、Autonomous Databaseインスタンスを専用にして、本番と開発を分離するデータ・セットを提供したり、パフォーマンスを確保したり、セキュリティを保証したり、その他の理由で提供したりできます。詳細は、Autonomous Databaseでのリフレッシュ可能クローンの使用を参照してください。
クラウド・リンクを使用した登録済データ・セットへのアクセスは、監査目的でログに記録されます。ログには、データ・セットにアクセスしたテナンシ、コンパートメントまたはデータベース、アクセスされたデータの量および追加情報が含まれます。V$CLOUD_LINK_ACCESS_STATSおよびGV$CLOUD_LINK_ACCESS_STATSビューには、監査情報が表示されます。
クラウド・リンクは、Autonomous Databaseインスタンス上のリモート・オブジェクトへの読取り専用アクセスを提供します。他のOracleデータベースまたはOracle以外のデータベースとのデータベース・リンクを使用する場合、またはDML操作でリモート・データを使用する場合は、データベース・リンクを使用する必要があります。詳細は、Autonomous Databaseでのデータベース・リンクの使用に関する項を参照してください。
データ・セット・メタデータおよび監査ビュー
各Autonomous Databaseインスタンスには、データ・セット・メタデータを公開し、データ使用状況を監視および監査できるビューが用意されています。詳細は、クラウド・リンク情報のモニターおよび表示を参照してください。
- データ・セットのスコープ、アクセス制御および認可
クラウド・リンクは、Oracle Cloud Infrastructureのアクセス・メカニズムを利用して、登録済のデータ・セットにアクセス可能にし、アクセス制限でデータを保護します。
データ・セット・スコープ、アクセス制御および認可
Autonomous Databaseでは、登録済データ・セットのアクセシビリティが次のように決定されます。
-
ADMINユーザーは、指定されたスコープに基づいてユーザーがデータ・セットを登録できるようにするユーザーのスコープを指定します。
-
データ・セットを登録する権限が付与されているユーザーは、データ・セットの登録時にスコープを指定します。
-
オプションで、データ・セットを登録するときに、認可権限を付与されたユーザーは、データ・セットへのアクセスに必要な認可ステップを指定できます。この認可ステップは、スコープ・レベルのアクセス認可に加えて行われます。
データ・セット・スコープ
ADMINは、DBMS_CLOUD_LINK_ADMIN.GRANT_REGISTER
を持つユーザーのスコープを次のいずれかに設定します。
'MY$REGION'
'MY$TENANCY'
'MY$COMPARTMENT'
ユーザーのスコープは階層型です。つまり、これらのスコープのいずれかを付与されたユーザーは、次のようにアクセスを許可できます。
-
MY$REGION
: ユーザーは、データ・セットを登録しているAutonomous Databaseインスタンスのリージョン内で、他のテナンシへのリモート・データ・アクセス権を付与できます。これは、最も制限の少ないスコープです。 -
MY$TENANCY
: ユーザーは、データ・セットを登録しているAutonomous Databaseインスタンスのテナンシ内の任意のリソース、テナンシ、コンパートメントまたはデータベースへのリモート・データ・アクセス権を付与できます。このスコープは、MY$REGION
スコープ以上に制限されています。 -
MY$COMPARTMENT
: ユーザーは、データ・セットを登録しているAutonomous Databaseインスタンスのコンパートメント内の任意のリソース、コンパートメントまたはデータベースへのリモート・データ・アクセス権を付与できます。これは、GRANT_REGISTER
を持つユーザーに対して設定できる最も限定的なスコープです。
次に、データ・セットの登録時に設定するスコープによって、ユーザーがデータ・セットにアクセスできる場所が決まります。DBMS_CLOUD_LINK.REGISTER
scope
は、次の1つ以上で構成されるカンマ区切りリストです。
-
データベースOCID: データ・セットへのアクセスは、OCIDによって識別される特定のAutonomous Databaseインスタンスに対して許可されます。
-
コンパートメントOCID: データ・セットへのアクセスは、コンパートメントOCIDによって識別されるコンパートメント内のデータベースに対して許可されます。
-
テナンシOCID: データ・セットへのアクセスは、テナンシOCIDによって識別されるテナント内のデータベースに対して許可されます。
-
リージョン名: データ・セットへのアクセスは、指定されたリージョンによって識別されるリージョン内のデータベースに対して許可されます。いずれの場合も、クラウド・リンク・アクセスは単一リージョン内に制限され、クロスリージョンではありません。
-
MY$COMPARTMENT
: データ・セットへのアクセスは、データ・セット所有者と同じコンパートメント内のデータベースに対して許可されます。 -
MY$TENANCY
: データ・セットへのアクセスは、データ・セット所有者と同じテナンシ内のデータベースに対して許可されます。 -
MY$REGION
: データ・セットへのアクセスは、データ・セット所有者と同じリージョン内のデータベースに対して許可されます。
スコープ値MY$REGION
、MY$TENANCY
およびMY$COMPARTMENT
は、便利なマクロとして機能し、OCIDsに解決される変数です。
The scope you set when you register a data set is only honored when it matches or is more restrictive than the value set with
DBMS_CLOUD_LINK_ADMIN.GRANT_REGISTER
. For example, assume the ADMIN granted the scope 'MY$TENANCY'
with GRANT_REGISTER
, and the user specifies 'MY$REGION'
when they register a data set with DBMS_CLOUD_LINK.REGISTER
. In this case they would see an error such as the following:ORA-20001: Share privileges are not enabled for current user or it is enabled but not for scope MY$REGION
SYS_CONTEXT
値に基づく追加のアクセス制御メカニズムを使用することもできます。このメカニズムでは、SYS_CONTEXT
値として使用可能な識別子を返すファンクションDBMS_CLOUD_LINK.GET_DATABASE_ID
を使用します。
DBMS_CLOUD_LINK.REGISTER
にデータ・セットを登録する場合、Oracle Virtual Private Database (VPD)セキュリティ・ポリシーでSYS_CONTEXT
値を使用してデータベース・アクセスを制御し、個々のAutonomous Databaseインスタンスでアクセスできる特定のデータをさらに制限および制御できます。
VPDポリシーの使用の詳細は、登録済データ・セットを保護するための仮想プライベート・データベース・ポリシーの定義を参照してください。
データベースIDの値は、アクセス統計および監査情報を追跡するV$CLOUD_LINK_ACCESS_STATSおよびGV$CLOUD_LINK_ACCESS_STATSビューでも使用できます。
詳細は、Oracle Virtual Private Databaseを使用したデータ・アクセスの制御を参照してください。
データ・セット承認
データ・セットを登録するときに、認可権限を付与されている場合は、データ・セットへのアクセスにデータベースOCID認可が必要であることを指定できます。データ・セットのデータベースOCID認可を指定するには、DBMS_CLOUD_LINK.GRANT_AUTHORIZATION
プロシージャを使用して、データ・セットへのアクセスを許可されているAutonomous Databaseインスタンスを指定します。DBMS_CLOUD_LINK.GRANT_AUTHORIZATION
を実行する前に、ADMINは、このプロシージャをDBMS_CLOUD_LINK_ADMIN.GRANT_AUTHORIZE
で実行することを認可する必要があります。
認可が必要なデータ・セット登録では、次のように、データ・セットに指定されたスコープ・アクセス制御に加えて、データ・セットのデータベース・レベル・アクセスを指定します。
-
指定した
SCOPE
内にあり、DBMS_CLOUD_LINK.GRANT_AUTHORIZATION
で認可されているデータベースは、データ・セットから行を表示できます。 -
指定された
SCOPE
内にあるが、DBMS_CLOUD_LINK.GRANT_AUTHORIZATION
で認可されていないデータベースは、データ・セット行を表示できません。この場合、認可されていないコンシューマでは、データ・セットは空とみなされます。 -
指定された
SCOPE
内にないデータベースでは、データ・セットにアクセスしようとするとエラーが表示されます。
データベース・ユーザーに対するクラウド・リンク・アクセス権の付与
ADMINユーザーは、データ・セットを登録する権限をデータベース・ユーザーに付与します。また、ADMINユーザーは、登録されたデータ・セットにアクセスする権限をデータベース・ユーザーに付与します。
ADMINユーザーは、登録権限を付与するときに、(スコープ階層内で)データ・セットを登録するときにユーザーが指定できる最大スコープを指定するスコープを提供します。DBMS_CLOUD_LINK_ADMIN.GRANT_REGISTER
で使用する有効なscope
値は次のとおりです。
'MY$REGION'
'MY$TENANCY'
'MY$COMPARTMENT'
詳細は、データ・セットのスコープ、アクセス制御および認可を参照してください。
データベース・ユーザーにデータ・セットを登録する権限を付与するためのノート:
-
データ・セットを登録したり、リモート・データ・セットを表示してアクセスするには、
DBMS_CLOUD_LINK_ADMIN.GRANT_REGISTER
に登録するか、DBMS_CLOUD_LINK_ADMIN.GRANT_READ
を使用してデータ・セットを読み取るための適切な権限が付与されている必要があります。これはADMINユーザーにも当てはまりますが、ADMINユーザーは自分に権限を付与できます。
-
ビュー
DBA_CLOUD_LINK_PRIVS
およびUSER_CLOUD_LINK_PRIVS
は、ユーザー権限に関する情報を提供します。詳細は、クラウド・リンク情報のモニターおよび表示を参照してください。 -
ユーザーは、次の問合せを実行して、登録済の保護されたデータ・セットの認証が有効になっているかどうかを確認できます。
SELECT SYS_CONTEXT('USERENV', 'CLOUD_LINK_AUTH_ENABLED') FROM DUAL;
データ・セットの登録または登録解除
所有する表またはビューを登録済データ・セットとして登録できます。データ・セットを削除または置換する場合は、そのデータ・セットを登録解除する必要があります。
データ・セット登録では、クラウド・リンクで使用するネームスペースと名前を定義します。データ・セット登録後、これらの値はまとめてリモート・アクセスの完全修飾名(FQN)を指定し、クラウド・リンクがデータ・セットのアクセシビリティを管理できるようにします。
登録済データ・セットへのリモート・アクセスを取り消す場合は、データ・セットの登録を解除できます。
BEGIN
DBMS_CLOUD_LINK.UNREGISTER
(
namespace => 'TRUSTED_COMPARTMENT',
name => 'SALES');
END;
/
詳細は、UNREGISTERプロシージャを参照してください。
- データ・セットの登録または登録解除に関するノート
DBMS_CLOUD_LINK.REGISTER
にデータ・セットを登録し、DBMS_CLOUD_LINK.UNREGISTER
にデータ・セットを登録解除するためのノートを提供します。
データ・セットの登録または登録解除に関するノート
DBMS_CLOUD_LINK.REGISTER
にデータ・セットを登録し、DBMS_CLOUD_LINK.UNREGISTER
にデータ・セットを登録解除するためのノートを提供します。
-
オブジェクトを登録した後、ユーザーは、クラウド・リンクを使用してオブジェクトにアクセスするために最大10分待機する必要がある場合があります。
-
データ・セットを登録し、リモート・リージョンのコンシューマがデータ・セットにアクセスできるようにする場合は、リモート・リージョンでデータ・セットを使用可能にするための追加のステップを実行する必要があります。詳細は、別のリージョンでのデータ・セットの登録または登録解除を参照してください。
-
既存のデータ・セットのスコープを変更するには、最初に
DBMS_CLOUD_LINK.UNREGISTER
でデータ・セットを登録解除する必要があります。次に、DBMS_CLOUD_LINK.REGISTER
に新しいスコープでデータ・セットを登録する必要があります。これら2つの操作の合計待機時間は、最大20分(登録解除に10分、レジスタが伝播されてクラウド・リンクからアクセス可能になるまでさらに10分)です。この遅延は、
DBA_CLOUD_LINK_REGISTRATIONS
ビューとDBA_CLOUD_LINK_ACCESS
ビューの両方のデータ・セットの可視性にも影響します。 -
表またはビューに対する
READ
WITH
GRANT
OPTION
権限がある場合は、別のユーザーのスキーマに存在する表またはビューを登録できます。 -
Autonomous Databaseでは、登録時に階層妥当性チェックは実行されず、範囲外の登録は表示またはアクセスできなくなります。
たとえば、次のシーケンスを考えてみます。
-
スコープ
MY$COMPARTMENT
を持つユーザーは、個々のデータベースOCIDを指定するスコープでオブジェクトを登録します。 -
ユーザーが登録済データ・セットへのアクセスをリクエストすると、Autonomous Databaseは、リクエストが発生したデータベースのデータベースOCIDが、データ・セットの登録時に
scope
で指定されたOCIDリストにあることを確認するチェックを実行します。 -
この後、
namespace.name
オブジェクトは、リクエストが発生したデータベースで検出可能、表示可能および使用できるようになります。
-
-
DBMS_CLOUD_LINK.UNREGISTER
の完全伝播には最大10分かかる場合があり、その後、リモートからデータにアクセスできるようになります。
親トピック: データ・セットの登録または登録解除
別のリージョンでのデータ・セットの登録または登録解除
クラウド・リンクは、ソース・リージョンにデータ・セットのソース・データベースが含まれ、1つ以上のリモート・リージョンにソース・データベースのリフレッシュ可能なクローンが含まれている複数のリージョンで使用できます。
別のリージョンのデータ・セットでクラウド・リンクを使用するには:
リモート・データ・セットは、リモート・リージョン内でのみ、またはリモート・リージョンとソース・リージョンの両方でのみ登録解除できます。
リモート・リージョンでデータ・セットを登録解除し、データ・セットへのリモート・アクセスを無効にするには:
-
リフレッシュ可能クローンで、データ・セットの登録を解除します。
たとえば:
BEGIN
DBMS_CLOUD_LINK.UNREGISTER
( namespace => 'TRUSTED_COMPARTMENT', name => 'SALES'); END; / -
リフレッシュ可能クローンをリフレッシュします。
詳細は、Autonomous Databaseでのリフレッシュ可能クローンのリフレッシュを参照してください。
ソース・データベースでデータ・セットを登録解除し、リモート・リージョンのリフレッシュ可能クローンでデータ・セットを登録解除するには:
-
リモート・リフレッシュ可能クローンが1つのみの場合は、リモート・リージョンに複数のリフレッシュ可能クローンがある場合は、そのデータ・セットの登録を解除します。
たとえば:
BEGIN
DBMS_CLOUD_LINK.UNREGISTER
( namespace => 'TRUSTED_COMPARTMENT', name => 'SALES'); END; / -
ソース・データベースで、データ・セットの登録を解除します。
詳細は、データ・セットの登録または登録解除を参照してください。
-
リフレッシュ可能クローンをリフレッシュします。
詳細は、Autonomous Databaseでのリフレッシュ可能クローンのリフレッシュを参照してください。
- リモート・リージョンでのデータ・セットの登録または登録解除に関するノート
リモート・リージョンでのデータ・セットの登録に関するノートを提供します。
リモート・リージョンでのデータ・セットの登録または登録解除に関するノート
リモート・リージョンにデータ・セットを登録するためのノートを提供します。
-
リモート・リージョンのリフレッシュ可能クローンにデータ・セットを登録する場合、リモート・リージョン・クローンでの
DBMS_CLOUD_LINK.REGISTER
の起動では、offload_targets
パラメータを除いて、ソース・データベースと同じ値を持つ同じパラメータを使用する必要があります。たとえば、ソースAutonomous Databaseインスタンスでスコープを
MY$COMPARTMENT
に設定してDBMS_CLOUD_LINK.REGISTER
を実行する場合は、同じスコープ・パラメータ値(MY$COMPARTMENT
)を持つクロスリージョン・リフレッシュ可能クローンでプロシージャを再度実行します。 -
ソースで
DBMS_CLOUD_LINK.REGISTER
にoffload_targets
パラメータを指定する場合は、リフレッシュ可能クローンにデータ・セットを登録するときにこのパラメータを省略する必要があります。 -
オブジェクトを登録した後、ユーザーは、クラウド・リンクを使用してオブジェクトにアクセスするために最大10分待機する必要がある場合があります。
-
次のアクションでは、リフレッシュ可能クローンをリフレッシュする必要があります:
-
VPDポリシーをソースのデータ・セットに追加する場合は、リフレッシュ可能クローンをリフレッシュする必要があります。
-
ソース・データベースでデータ・セットの付与または取消しを実行する場合は、リフレッシュ可能クローンをリフレッシュする必要があります。
詳細は、Autonomous Databaseでのリフレッシュ可能クローンのリフレッシュを参照してください。
-
親トピック: 別のリージョンでのデータ・セットの登録または登録解除
認可必須のデータ・セットの登録
オプションで、データ・セットを登録するときに、スコープに加えて、データ・セットへのアクセスにデータベース・レベルの認可が必要であることを指定できます。
auth_required
をFALSE
に設定した前の例と比較して、この例ではauth_required
をTRUE
に設定します。auth_required
がTRUE
の場合、データ・セットへのアクセスが認可される1つ以上のデータベースを指定するための追加のステップが必要です。
権限がある場合、これらのステップに示すように、認可のみを付与できます。ADMINは、
DBMS_CLOUD_LINK_ADMIN.GRANT_AUTHORIZE
を使用して認可権限を付与します。
データベースの認可を取り消す場合:
BEGIN
DBMS_CLOUD_LINK.REVOKE_AUTHORIZATION
(
database_id => '120xxxxxxx8506029999',
namespace => 'TRUSTED_COMPARTMENT',
name => 'SALES');
END;
/
詳細は、次を参照してください:
データ・セット・アクセスのオフロード・ターゲットへのデータ・セットの登録
オプションで、データ・セットを登録するときに、データ・セットへのアクセスを、リフレッシュ可能なクローンである1つ以上のAutonomous Databaseインスタンスにオフロードできます。
オプションのoffload_targets
パラメータをDBMS_CLOUD_LINK.REGISTER
とともに使用して、アクセスがリフレッシュ可能クローンにオフロードされるように指定します。各リフレッシュ可能クローンのソース・データベースは、データ・セット(データ・パブリッシャ)を登録するAutonomous Databaseインスタンスです。
offload_targets
値は、1つ以上のCLOUD_LINK_DATABASE_ID
とOFFLOAD_TARGET
のキー値ペアを定義するJSONドキュメントです。
-
CLOUD_LINK_DATABASE_ID
は次のいずれかです。-
データベースID:
OFFLOAD_TARGET
値で指定された対応するリフレッシュ可能クローンにリクエストがオフロードされるデータ・セット・コンシューマのデータベースIDを指定します。DBMS_CLOUD_LINK.GET_DATABASE_ID
を実行してデータベースIDを取得します。詳細は、GET_DATABASE_IDファンクションを参照してください。 -
ANY
: データ・セット・コンシューマのリクエストが、対応するオフロード・ターゲットにオフロードされることを指定します。コンシューマのデータ・セット・リクエストは、対応するオフロード・ターゲットにルーティングされます。データベースIDを指定せずに
ANY
を指定すると、コンシューマからのすべてのデータ・セット・リクエストが、OFFLOAD_TARGET
値で指定されたリフレッシュ可能クローンにオフロードされます。データベースIDと
ANY
の両方を指定した場合、データベースIDと一致しないコンシューマからのデータ・セット・リクエストは、OFFLOAD_TARGET
値で指定されたリフレッシュ可能クローンにオフロードされます。
-
-
OFFLOAD_TARGET
は、リフレッシュ可能クローンであるAutonomous DatabaseインスタンスのOCIDです。
次の図は、オフロード・ターゲットの使用を示しています。
データ・セット・コンシューマが、offload_targets
に登録したデータ・セットへのアクセスをリクエストし、Autonomous DatabaseインスタンスのデータベースIDがCLOUD_LINK_DATABASE_ID
で指定された値と一致する場合、アクセスは、指定されたJSONのOFFLOAD_TARGET
で識別されるリフレッシュ可能クローンにオフロードされます。
たとえば、OFFLOAD_TARGET
/CLOUD_LINK_DATABASE_ID
値のペアが3つあるJSONサンプルを次に示します。
{
"OFFLOAD_TARGETS": [
{
"CLOUD_LINK_DATABASE_ID": "34xxxxx69708978",
"OFFLOAD_TARGET":
"ocid1.autonomousdatabase.oc1..xxxxx3pv6wkcr4jqae5f44n2b2m2yt2j6rx32uzr4h25vqstifsfabc"
},
{
"CLOUD_LINK_DATABASE_ID": "34xxxxx89898978",
"OFFLOAD_TARGET":
"ocid1.autonomousdatabase.oc1..xxxxx3pv6wkcr4jqae5f44n2b2m2yt2j6rx32uzr4h25vqstifsfdef"
},
{
"CLOUD_LINK_DATABASE_ID": "34xxxxx4755680",
"OFFLOAD_TARGET":
"ocid1.autonomousdatabase.oc1..xxxxx3pv6wkcr4jqae5f44n2b2m2yt2j6rx32uzr4h25vqstifsfghi"
}
]
}
データ・セット・コンシューマが、ANY
キーワードを含むoffload_targets
に登録したデータ・セットへのアクセスをリクエストすると、指定されたJSONでOFFLOAD_TARGET
で識別されるリフレッシュ可能クローンにアクセスがオフロードされます(指定されたJSONで一致するデータベースIDエントリを持つコンシューマからのリクエストを除く)。
たとえば、1つの明示的なOFFLOAD_TARGET
/CLOUD_LINK_DATABASE_ID
値ペアと1つのANY
値に対応する OFFLOAD_TARGET
を持つJSONサンプルを次に示します。
{
"OFFLOAD_TARGETS": [
{
"CLOUD_LINK_DATABASE_ID": "ANY",
"OFFLOAD_TARGET":
"ocid1.autonomousdatabase.oc1..xxxxx3pv6wkcr4jqae5f44n2b2m2yt2j6rx32uzr4h25vqstifsfdef"
},
{
"CLOUD_LINK_DATABASE_ID": "34xxxxx4755680",
"OFFLOAD_TARGET":
"ocid1.autonomousdatabase.oc1..xxxxx3pv6wkcr4jqae5f44n2b2m2yt2j6rx32uzr4h25vqstifsfghi"
}
]
}
データ・セットを登録し、オフロード・ターゲットを指定するには、次の手順を実行します。
読取り専用Autonomous Databaseインスタンスからのクラウド・リンクの使用
データ・セットが読取り専用Autonomous Databaseインスタンスに存在する場合、クラウド・リンクを共有できます。
データ・セットの検索およびクラウド・リンクの使用
クラウド・リンクの読取りアクセス権を付与されたユーザーは、Autonomous Databaseインスタンスで使用可能なデータ・セットを検索し、問合せで登録済データ・セットにアクセスして使用できます。
ADMINユーザーがGRANT_READ
を実行した後、ユーザーはクラウド・リンクを検索して使用できます。
クラウド・リンク・コンシューマのキャッシュの有効化
問合せの結果またはクラウド・リンク・データにアクセスする問合せフラグメントについて、データ・セット・コンシューマでキャッシュを有効にできます。
データ・セット・コンシューマでキャッシュを有効にするには、RESULT_CACHE
ヒントをSHELFLIFE
オプションとともに使用します。SHELFLIFE
オプションでは、問合せ結果がキャッシュされる期間(秒)を示す値を指定します。SHELFLIFE
間隔が経過すると、キャッシュされた結果は無効としてマークされます。キャッシュされた結果が有効であるかぎり、問合せはコンシューマ・データベースのキャッシュからキャッシュされたデータを取得し、データ・セット所有者のデータベースへのラウンドトリップを回避します。
データ・セットが静的であるか、コンシューマが失効した結果を許容できる場合は、RESULT_CACHE
ヒントをSHELFLIFE
オプションとともに使用します。SHELFLIFE
の値により、クラウド・リンク・データ・セット・コンシューマは、キャッシュ内のデータが有効な時間(許容される失効度)を秒単位で制御できます。
問合せ結果が大きく、メモリーに収まらない場合は、RESULT_CACHE
ヒントをSHELFLIFE
オプションおよびTEMP
オプションとともに使用して、結果を一時表領域のディスクに書き込むように指定できます。
RESULT_CACHE
ヒントを使用してクラウド・リンク・データをキャッシュするには:
Autonomous Databaseでの結果キャッシュの使用の詳細は、RESULT_CACHE_MODEを参照してください。
SHELFLIFE
を使用したRESULT_CACHE
の詳細は、RESULT_CACHEヒントを参照してください。
結果キャッシュを管理し、結果キャッシュ内のオブジェクトを無効化するプロシージャの詳細は、DBMS_RESULT_CACHEを参照してください。
データベース・ユーザーのクラウド・リンク・アクセスの取消し
ADMINユーザーは登録を取り消して、ユーザーがリモート・アクセス用のデータ・セットを登録できないようにできます。ADMINユーザーは、登録済データ・セットにアクセスする権限またはデータベース・ユーザーを取り消すこともできます。
クラウド・リンク情報のモニターおよび表示
Autonomous Databaseには、クラウド・リンクをモニターおよび監査できるビューが用意されています。
表示 | 説明 |
---|---|
V$CLOUD_LINK_ACCESS_STATSおよびGV$CLOUD_LINK_ACCESS_STATSビュー |
Autonomous Databaseインスタンスで登録されている各データ・セットへのアクセスを追跡する場合に使用します。これらのビューは、経過時間、CPU時間、取得された行数、および登録されたデータ・セットに関する追加情報を追跡します。これらのビューの情報を使用して、クラウド・リンク・データ・セットのアクセスおよび使用状況を監査できます。 |
DBA_CLOUD_LINK_REGISTRATIONSおよびALL_CLOUD_LINK_REGISTRATIONSビュー |
Autonomous Databaseインスタンスの登録済データ・セットの詳細をリストする場合に使用します。 |
DBA_CLOUD_LINK_ACCESSおよびALL_CLOUD_LINK_ACCESSビュー |
データベースがアクセスを許可されている登録済データ・セットの詳細を取得する場合に使用します。 |
DBA_CLOUD_LINK_AUTHORIZATIONSビュー |
どのデータベースにどのデータセットにアクセス権があるかに関する情報を提供します。これは、 |
すべてのユーザーまたは現在のユーザーに付与される、クラウド・リンク固有の権限( |
登録済データ・セットを保護するための仮想プライベート・データベース・ポリシーの定義
Oracle Virtual Private Database (VPD)は、同じデータ・セットにフィルタを適用することで、ユーザーおよびアプリケーションの行レベルでデータ・アクセスを動的に制御できるセキュリティ機能です。
クラウド・リンクの読取りアクセス権を付与されたユーザーは、データ・セットの登録時に指定したスコープ内にある場合、登録済データ・セットにアクセスして使用できます。また、データ・セットに対して追加の認可必須パラメータが設定されている場合、アクセスは認可済データベースからのものです。各リモート・アクセスは、(データ・セットが登録されたデータベース上の)登録済データ・セットにアクセスするリモートAutonomous Databaseインスタンスのコンテキストで実行されます。
リモート・システムで関数DBMS_CLOUD_LINK.GET_DATABASE_ID
を使用して、データベースの一意のIDを取得します。データ・セットを登録したデータベースでVPDポリシーを定義することで、リモート・データベースの識別子をSYS_CONTEXT
ルールとして使用して、より詳細な制御を提供できるようになりました。登録されたデータ・セットにアクセスするリモート・データベースのルールを定義し、クラウド・リンク・スコープを指定することで、可能な範囲を超えるアクセスを制限できます。
REGIONAL_SALES.SALES_AGG
がテナンシ・レベルで使用可能になる例を考えてみます。1つの特定のデータベースを除くすべてのデータベースへのアクセスを制限し、指定したデータベースへのフル・アクセスのみを許可する場合は、登録済データ・セットにVPDポリシーを追加できます。
たとえば:
詳細は、Oracle Virtual Private Databaseを使用したデータ・アクセスの制御を参照してください。
クラウド・リンクに関するノート
クラウド・リンクの使用に関するノートおよび制限事項を示します。
-
登録できるデータ・セットの数には4096の制限があります。
各Autonomous Databaseインスタンスは、4096個以下のデータ・セットを登録できます。この制限は、ECPUの数(データベースがOCPUを使用している場合のOCPU)やインスタンスのストレージ・サイズに関係なく、すべてのAutonomous Databaseインスタンスに適用されます。制限は固定値であり、ECPU数を大きい値に設定すると、より多くのデータ・セットを登録できません。
-
オブジェクトに対する
READ WITH GRANT OPTION
権限がある場合は、別のスキーマにオブジェクトを登録できます。 -
データ・セットを登録したり、リモート・データ・セットを表示してアクセスするには、データ・セットを登録または読取りするための適切な権限が付与されている必要があります。これはADMINにも当てはまりますが、ADMINはこの権限を自分に付与できます。
-
DBMS_CLOUD_LINK.REGISTER
を使用するには、DBMS_CLOUD_LINK_ADMIN.GRANT_REGISTER
に割り当てられた登録権限に加えて、DBMS_CLOUD_LINK
パッケージに対する実行権限が必要です。デフォルトでは、ADMINユーザーおよびPDB_DBA
を持つスキーマのみがこの権限を持ちます。 -
登録された表を削除して再作成する場合は、リモート・アクセス用に表を再登録する必要があります。
-
ADMINユーザーおよびロール
PDB_DBA
を持つユーザーのみが、次のビューにアクセスする権限を持ちます。-
DBA_CLOUD_LINK_ACCESS
-
DBA_CLOUD_LINK_REGISTRATIONS
-
DBA_CLOUD_LINK_AUTHORIZATIONS
-
DBA_CLOUD_LINK_PRIVS
詳細は、DBMS_CLOUD_LINKビューを参照してください。
-
-
登録されているリモート・データにアクセスするには、リモート・データベースをオープンする必要があります。リモート・データベースがクローズまたは制限モードの場合、データにアクセスできず、Oracleエラーが返されます。
-
セッションごとに最大4つのオープン・データベース・リンクの制限があります。この制限を超えると、
ORA-02020
またはORA-12545
が発生する可能性があります。 -
データ・ウェアハウス・ワークロードを使用するAutonomous Databaseのデフォルトの動作と同様に、結果キャッシュが有効になっている場合は、リアルタイム・データが必要なときに結果キャッシュが使用されないようにする必要があります。
-
ライセンス・タイプを「無料」から「有料」に更新する場合は、クラウド・リンク・データ・セットを再登録する必要があります。詳細は、Autonomous DatabaseでのAlways Freeインスタンスの有料への更新を参照してください。
-
クラウド・リンクのリモート接続では
MEDIUM
サービスが使用され、これは変更できません。リモート接続はユーザーC##DATA$SHARE
としてV$SESSION
で表示でき、クラウド・リンク・ビューV$CLOUD_LINK_ACCESS_STATSおよびGV$CLOUD_LINK_ACCESS_STATSビューにはリモート接続の詳細が表示されます。 -
特に明記されていないかぎり、すべてのインタフェースで大文字と小文字が区別されます。
- ユーザー名やテーブル名など、データベース内に存在する入力内容は、大文字と小文字が区別され、大文字で入力する必要があります。
- 事前定義済の変数。たとえば、事前定義済のスコープ値は大文字で入力する必要があります。
- クラウド・リンクの設定に指定したもの(ネームスペースやネームスペース内の表の名前など)は、入力されたとおりに指定する必要があります。たとえば、ネームスペースを
trees
として定義する場合は、SQLを使用してネームスペースにアクセスするときに、ネームスペースを"trees"
として二重引用符で囲む必要があります。
-
データ・セットが読取り専用モードのAutonomous Databaseインスタンスに存在する場合、クラウド・リンクを共有できます。詳細は、読取り専用Autonomous Databaseインスタンスからのクラウド・リンクの使用を参照してください。
-
リフレッシュ可能クローンを作成してから最大10分かかるため、リフレッシュ可能クローンをオフロード・ターゲットとして表示できます。つまり、リフレッシュ可能クローンを作成してから最大10分待ってから、リフレッシュ可能クローンをクラウド・リンクのオフロード登録に使用できるようにする必要があります。
詳細は、データ・セット・アクセスのオフロード・ターゲットへのデータ・セットの登録およびAutonomous Databaseインスタンスのリフレッシュ可能クローンの作成を参照してください。