DBMS_CLOUD_LINKパッケージ
DBMS_CLOUD_LINKパッケージを使用すると、ユーザーは、クラウド・リンクでの読取り専用アクセス用のデータ・セットとして表またはビューを登録できます。
DBMS_CLOUD_LINK概要
DBMS_CLOUD_LINKパッケージの使用について説明します。
DBMS_CLOUD_LINKパッケージには、クラウド・リンクで使用するデータ・セットとして表またはビューを登録できるREGISTERプロシージャが用意されています。データ・セットを登録する前に、ADMINユーザーがDBMS_CLOUD_LINK_ADMIN.GRANT_REGISTERプロシージャを使用してデータ・セットを登録する権限をユーザーに付与する必要があります。ADMINがGRANT_REGISTERを実行した後、ユーザーは、表または所有するビューを登録済データ・セットとして登録できます(または、ユーザーがオブジェクトに対するREAD WITH GRANT OPTION権限を持っている場合は、別のスキーマにオブジェクトを登録できます)。登録済データ・セットは、REGISTERプロシージャで指定されたスコープに従って、登録済オブジェクトへのクラウド・リンクによるリモート・アクセスを提供します。
DBMS_CLOUD_LINK.REGISTER、DBMS_CLOUD_LINK.UPDATE_REGISTRATIONまたはDBMS_CLOUD_LINK.UNREGISTERを実行するには、以前にDBMS_CLOUD_LINK_ADMIN.GRANT_REGISTERを実行したことに加えて、DBMS_CLOUD_LINKパッケージに対する実行権限が必要です。デフォルトでは、ADMINユーザーおよびPDB_DBAロールを持つスキーマのみがDBMS_CLOUD_LINKに対する実行権限を持ちます。
DBMS_CLOUD_LINKサブプログラムの要約
DBMS_CLOUD_LINKパッケージに含まれるサブプログラムのサマリーを含む表を示します。
| サブプログラム | 摘要 |
|---|---|
| DESCRIBEファンクション | このファンクションは、データ・セットの摘要を取得します。この説明は、データ・セットがDBMS_CLOUD_LINK.REGISTERに登録されたときに提供されます。 |
| FINDプロシージャ | 検索文字列に一致するデータ・セットのネームスペース、名前および説明を取得します。一致するデータ・セットは、アクセス制限に基づいてユーザーがアクセスできる場合にのみ表示されます。 |
| GET_DATABASE_IDファンクション | Autonomous AI Databaseインスタンスの一意の識別子を返します。同じインスタンスでDBMS_CLOUD_LINK.GET_DATABASE_IDを繰り返しコールすると、常に同じ値が返されます。 |
| GRANT_AUTHORIZATIONプロシージャ | 指定されたデータ・セットにアクセスするための認可を指定されたデータベースに付与します。 |
| REGISTERプロシージャ | 表またはビューをデータ・セットとして登録します。 |
| REVOKE_AUTHORIZATIONプロシージャ | 指定されたデータ・セットにアクセスするための、指定されたデータベースの認可を取り消します。 |
| UNREGISTERプロシージャ | 登録済みのデータセットを削除します。 |
| UPDATE_REGISTRATIONプロシージャ | DBMS_CLOUD_LINK.REGISTERを使用して登録されたデータ・セットの属性を更新します。 |
DESCRIBEファンクション
このファンクションは、データ・セットの摘要を取得します。この説明は、データ・セットがDBMS_CLOUD_LINK.REGISTERに登録されたときに提供されます。
構文
DBMS_CLOUD_LINK.DESCRIBE(
namespace IN VARCHAR2,
name IN VARCHAR2
) return CLOB;パラメータ
| パラメータ | 摘要 |
|---|---|
namespace |
登録済データ・セットのネームスペースを指定します。このパラメータに指定する値は、デフォルトでは大/小文字が区別されず、大文字に変換されます。たとえば、testnamespaceはTESTNAMESPACEに変換されます。大/小文字を区別する値を指定するには、二重引用符(")で囲みます。たとえば、"testnamespace"はtestnamespaceとして扱われ、"TestNamespace"はTestNamespaceとして扱われます(大/小文字は変更されません)。 |
name |
登録済データ・セットの名前を指定します。このパラメータに指定する値は、デフォルトでは大/小文字が区別されず、大文字に変換されます。たとえば、testdatasetはTESTDATASETに変換されます。大/小文字を区別する値を指定するには、二重引用符(")で囲みます。たとえば、"testdataset"はtestdatasetとして扱われ、"TestDataset"はTestDatasetとして扱われます(大/小文字は変更されません)。 |
使用上のノート
このファンクションは、DBMS_CLOUD_LINK.REGISTERへの登録時に課されるアクセス制限に従って使用できます。データベースからデータ・セットにアクセスできない場合、その説明は取得されません。
FINDプロシージャ
このプロシージャは、検索文字列に一致するデータ・セットのネームスペース、名前および説明を取得します。一致するデータ・セットは、アクセス制限に基づいてユーザーがアクセスできる場合にのみ表示されます。
構文
DBMS_CLOUD_LINK.FIND(
search_string IN VARCHAR2,
search_result OUT CLOB
);パラメータ
| パラメータ | 摘要 |
|---|---|
search_string |
検索文字列を指定します。検索文字列は大文字と小文字が区別されません。 |
search_result |
データ・セットのネームスペース、名前および説明の値を含むJSONドキュメント。 |
使用上のノート
検索文字列では大文字と小文字が区別されず、パッケージではOracle Textを使用したフリー・テキスト検索を利用します。
GET_DATABASE_IDファンクション
このファンクションは、Autonomous AI Databaseインスタンスの一意の識別子を返します。同じインスタンスでDBMS_CLOUD_LINK.GET_DATABASE_IDを繰り返しコールすると、常に同じ値が返されます。
このファンクションは、登録済データ・セットにリモートでアクセスしているデータベースでコールして、データベースIDを取得できます。これにより、データ・セットの所有者が、リモート・サイトの指定したデータベースIDに基づいて、VPDなどのより詳細なデータ・アクセス制御を利用できるように、データベースiDを提供できます。
データベースIDは、登録済データ・セットにアクセスする各リモート・データベースを識別し、登録済データ・セットを所有するデータベース上のV$CLOUD_LINK_ACCESS_STATSビューおよびGV$CLOUD_LINK_ACCESS_STATSビューでアクセスを追跡および監査します。
構文
DBMS_CLOUD_LINK.GET_DATABASE_ID()
RETURN VARCHAR2;使用上のノート
クラウド・リンクでは、DBMS_CLOUD_LINK.GET_DATABASE_IDが返す一意の識別子を使用して、データ・セットにリモートでアクセスしている個々のデータベースを識別します。登録済データ・セットを所有するデータベースは、V$CLOUD_LINK_ACCESS_STATSビューおよびGV$CLOUD_LINK_ACCESS_STATSビューのデータ・セット・アクセスのオリジン・レコードとしてデータベースIDを追跡および監査します。
DBMS_CLOUD_LINK.GET_DATABASE_ID識別子はSYS_CONTEXT値として使用できるため、SYS_CONTEXTを使用して接続しているリモート・セッションに関するこの情報をプログラムで取得し、仮想プライベート・データベース(VPD)を使用する個々のAutonomous AI Databaseインスタンスによってリモートでアクセスできる特定のデータをさらに制限および制御できます。
戻り値
VARCHAR2のAutonomous AI Databaseインスタンスの一意の識別子。
GRANT_AUTHORIZATIONプロシージャ
このプロシージャは、指定されたデータ・セットにアクセスするための認可を指定されたデータベースに付与します。
構文
DBMS_CLOUD_LINK.GRANT_AUTHORIZATION(
database_id IN VARCHAR2,
namespace IN VARCHAR2 DEFAULT,
name IN VARCHAR2
);パラメータ
| パラメータ | 摘要 |
|---|---|
database_id |
Autonomous AI DatabaseインスタンスのデータベースIDを指定します。DBMS_CLOUD_LINK.GET_DATABASE_IDを使用して、データベースIDを取得します。 |
namespace |
指定されたdatabase_idに対するアクセス認可を付与するデータ・セット・ネームスペースを指定します。このパラメータに指定する値は、デフォルトでは大/小文字が区別されず、大文字に変換されます。たとえば、testnamespaceはTESTNAMESPACEに変換されます。大/小文字を区別する値を指定するには、二重引用符(")で囲みます。たとえば、"testnamespace"はtestnamespaceとして扱われ、"TestNamespace"はTestNamespaceとして扱われます(大/小文字は変更されません)。 |
name |
指定されたdatabase_idのアクセス認可を付与するデータ・セット名を指定します。このパラメータに指定する値は、デフォルトでは大/小文字が区別されず、大文字に変換されます。たとえば、testdatasetはTESTDATASETに変換されます。大/小文字を区別する値を指定するには、二重引用符(")で囲みます。たとえば、"testdataset"はtestdatasetとして扱われ、"TestDataset"はTestDatasetとして扱われます(大/小文字は変更されません)。 |
REGISTERプロシージャ
このプロシージャは、scopeパラメータによる制限に従って、リモートの読取り専用アクセスを許可するデータ・セットとして表またはビューを登録します。
構文
DBMS_CLOUD_LINK.REGISTER(
schema_name IN VARCHAR2,
schema_object IN VARCHAR2,
namespace IN VARCHAR2,
name IN VARCHAR2,
description IN CLOB,
scope IN CLOB,
auth_required IN BOOLEAN DEFAULT,
data_set_owner IN VARCHAR2 DEFAULT,
offload_targets IN CLOB DEFAULT
);パラメータ
| パラメータ | 摘要 |
|---|---|
schema_name |
schema_objectパラメータで指定された表またはビューの所有者を指定します。 |
schema_object |
表またはビュー名を指定します。有効なオブジェクトは次のとおりです。
分析ビューやシノニムなどの他のオブジェクトはサポートされていません。 |
namespace |
データ・セットのネームスペースを指定します。このパラメータに指定する値は、デフォルトでは大/小文字が区別されず、大文字に変換されます。たとえば、
|
name |
データ・セット名を指定します。このパラメータに指定する値は、デフォルトでは大/小文字が区別されず、大文字に変換されます。たとえば、testdatasetはTESTDATASETに変換されます。大/小文字を区別する値を指定するには、二重引用符(")で囲みます。たとえば、"testdataset"はtestdatasetとして扱われ、"TestDataset"はTestDatasetとして扱われます(大/小文字は変更されません)。 |
description |
データを説明するテキストを指定します。 |
scope |
データ・セットへのアクセスを許可するユーザーを示します。値は、次の1つ以上で構成されるカンマ区切りリストです:
スコープ値 |
auth_required |
データベースがデータ・セットから読み取るために追加の認可が必要であることを指定します。次のケースが考えられます。
|
data_set_owner |
データセットの所有者を指定します。これは、データ・セットが属するユーザー、またはデータ・セットの更新と保守を担当するユーザーを示します。たとえば、data_set_ownerを、データ・セットを登録したユーザーの電子メール・アドレスに設定できます。 |
offload_targets |
データ・セットが登録されているAutonomous AI Databaseから、データ・セットへのアクセスがオフロードされるリフレッシュ可能クローンの1つ以上のAutonomous AI Database OCIDsを指定します。
たとえば、3つの データ・セット・コンシューマが、 たとえば、1つの明示的な
リフレッシュ可能クローンの使用の詳細は、Autonomous AI Databaseでのリフレッシュ可能クローンの使用を参照してください。 |
使用上のノート
-
オブジェクトを登録した後、ユーザーはクラウド・リンクを使用してオブジェクトにアクセスするために最大10分待機する必要がある場合があります。
-
プロシージャ
DBMS_CLOUD_LINK.UPDATE_REGISTRATIONを使用して、既存のデータ・セットの属性を変更します。更新が完了するまでの待機時間は、登録変更が伝播され、クラウド・リンクを介してアクセス可能になるまで最大10分です。この遅延は、
DBA_CLOUD_LINK_REGISTRATIONSビューとDBA_CLOUD_LINK_ACCESSビューの両方のデータの精度に影響する可能性があります。 -
表またはビューに対する
READ WITH GRANT OPTION権限がある場合は、別のユーザーのスキーマに存在する表またはビューを登録できます。 -
データ・セットの登録時に設定するスコープは、
DBMS_CLOUD_LINK_ADMIN.GRANT_REGISTERで設定された値と一致するか、またはそれよりも制限が大きい場合にのみ適用されます。たとえば、ADMINがGRANT_REGISTERでスコープ'MY$TENANCY'を付与し、ユーザーがDBMS_CLOUD_LINK.REGISTERでデータ・セットを登録するときに'MY$REGION'を指定したとします。その場合は、次のようなエラーが表示されます:
ORA-20001: Share privileges are not enabled for current user or it is enabled but not for scope MY$REGION-
登録時に階層的な妥当性チェックを実行することはできません。無効な登録は、誰でも表示、検出、またはアクセスできなくなります。
-
DBMS_CLOUD_LINK.REGISTERを使用するには、DBMS_CLOUD_LINK_ADMIN.GRANT_REGISTERで割り当てられたレジスタ権限に加えて、DBMS_CLOUD_LINKパッケージに対する実行権限が必要です。デフォルトでは、ADMINユーザーおよびPDB_DBAのスキーマのみがこの権限を持ちます。 -
リモート・リージョン内のリフレッシュ可能クローンにデータ・セットを登録する場合、リモート・リージョン・クローンでの
DBMS_CLOUD_LINK.REGISTERの起動では、offload_targetsパラメータを除き、ソース・データベースと同じ値を持つ同じパラメータを使用する必要があります。たとえば、ソースAutonomous AI Databaseインスタンスでスコープを
MY$COMPARTMENTに設定してDBMS_CLOUD_LINK.REGISTERを実行する場合、同じスコープ・パラメータ値(MY$COMPARTMENT)を使用してクロス・リージョン・リフレッシュ可能クローンでプロシージャを再度実行します。 -
ソースで
DBMS_CLOUD_LINK.REGISTERにoffload_targetsパラメータを指定する場合は、クロス・リージョン・リフレッシュ可能クローンにデータ・セットを登録するときに、このパラメータを省略する必要があります。
REVOKE_AUTHORIZATIONプロシージャ
このプロシージャは、指定したデータベースに対する認可を取り消して、指定したデータ・セットにアクセスします。
構文
DBMS_CLOUD_LINK.REVOKE_AUTHORIZATION(
database_id IN VARCHAR2,
namespace IN VARCHAR2 DEFAULT,
name IN VARCHAR2
);パラメータ
| パラメータ | 摘要 |
|---|---|
database_id |
Autonomous AI DatabaseインスタンスのデータベースIDを指定します。DBMS_CLOUD_LINK.GET_DATABASE_IDを使用して、データベースIDを取得します。 |
namespace |
指定されたdatabase_idのアクセス認可を取り消すデータ・セット・ネームスペースを指定します。このパラメータに指定する値は、デフォルトでは大/小文字が区別されず、大文字に変換されます。たとえば、testnamespaceはTESTNAMESPACEに変換されます。大/小文字を区別する値を指定するには、二重引用符(")で囲みます。たとえば、"testnamespace"はtestnamespaceとして扱われ、"TestNamespace"はTestNamespaceとして扱われます(大/小文字は変更されません)。 |
name |
指定されたdatabase_idのアクセス認可を取り消すデータ・セット名を指定します。このパラメータに指定する値は、デフォルトでは大/小文字が区別されず、大文字に変換されます。たとえば、testdatasetはTESTDATASETに変換されます。大/小文字を区別する値を指定するには、二重引用符(")で囲みます。たとえば、"testdataset"はtestdatasetとして扱われ、"TestDataset"はTestDatasetとして扱われます(大/小文字は変更されません)。 |
UNREGISTERプロシージャ
このプロシージャにより、REGISTERプロシージャを使用して表またはビューを以前に登録したユーザーは、表またはビューを登録解除して、リモート・アクセスに使用できなくなります。
構文
DBMS_CLOUD_LINK.UNREGISTER(
namespace IN VARCHAR2,
name IN VARCHAR2
);パラメータ
| パラメータ | 摘要 |
|---|---|
namespace |
名前空間を指定します。このパラメータに指定する値は、デフォルトでは大/小文字が区別されず、大文字に変換されます。たとえば、testnamespaceはTESTNAMESPACEに変換されます。大/小文字を区別する値を指定するには、二重引用符(")で囲みます。たとえば、"testnamespace"はtestnamespaceとして扱われ、"TestNamespace"はTestNamespaceとして扱われます(大/小文字は変更されません)。 |
name |
データ・セット名を指定します。このパラメータに指定する値は、デフォルトでは大/小文字が区別されず、大文字に変換されます。たとえば、testdatasetはTESTDATASETに変換されます。大/小文字を区別する値を指定するには、二重引用符(")で囲みます。たとえば、"testdataset"はtestdatasetとして扱われ、"TestDataset"はTestDatasetとして扱われます(大/小文字は変更されません)。 |
使用上のノート
DBMS_CLOUD_LINK.UNREGISTERは、完全に伝播するのに最大10分かかる場合もあり、その後、データにリモートからアクセスできるようになります。
UPDATE_REGISTRATIONプロシージャ
このプロシージャは、DBMS_CLOUD_LINK.REGISTERを使用して登録されたデータ・セットの1つ以上の属性を更新します。
構文
DBMS_CLOUD_LINK.UPDATE_REGISTRATION(
namespace IN VARCHAR2,
name IN VARCHAR2,
description IN CLOB DEFAULT,
scope IN CLOB DEFAULT,
auth_required IN BOOLEAN DEFAULT,
data_set_owner IN VARCHAR2 DEFAULT,
offload_targets IN CLOB DEFAULT
);パラメータ
| パラメータ | 摘要 |
|---|---|
namespace |
更新するデータセットのネームスペースを指定します。このパラメータに指定する値は、デフォルトでは大/小文字が区別されず、大文字に変換されます。たとえば、testnamespaceはTESTNAMESPACEに変換されます。大/小文字を区別する値を指定するには、二重引用符(")で囲みます。たとえば、"testnamespace"はtestnamespaceとして扱われ、"TestNamespace"はTestNamespaceとして扱われます(大/小文字は変更されません)。 |
name |
更新するデータ・セットの名前を指定します。このパラメータに指定する値は、デフォルトでは大/小文字が区別されず、大文字に変換されます。たとえば、testdatasetはTESTDATASETに変換されます。大/小文字を区別する値を指定するには、二重引用符(")で囲みます。たとえば、"testdataset"はtestdatasetとして扱われ、"TestDataset"はTestDatasetとして扱われます(大/小文字は変更されません)。 |
description |
データを説明するために更新されたテキストを指定します。 このパラメータ値に対して デフォルトでは、この属性は更新されません。 |
scope |
指定された値でスコープを更新します。スコープは、データ・セットへのアクセスを許可するユーザーを示します。値は、次の1つ以上で構成されるカンマ区切りリストです:
スコープ値 このパラメータ値に対して デフォルトでは、この属性は更新されません。 |
auth_required |
データベースがデータ・セットから読み取るために追加の認可が必要であることを指定します。次のケースが考えられます。
このパラメータ値に対して デフォルトでは、この属性は更新されません。 |
data_set_owner |
データ・セットの所有者を指定します。これは、データ・セットが属するユーザー、またはデータ・セットの更新と保守を担当するユーザーを示します。たとえば、データ・セットを登録したユーザーの電子メール・アドレスに このパラメータ値に対して デフォルトでは、この属性は更新されません。 |
offload_targets |
データ・セットが登録されているAutonomous AI Databaseから、データ・セットへのアクセスがオフロードされるリフレッシュ可能クローンの1つ以上のAutonomous AI Database OCIDsを指定します。
たとえば、3つの データ・セット・コンシューマが、 たとえば、1つの明示的な
リフレッシュ可能クローンの使用の詳細は、Autonomous AI Databaseでのリフレッシュ可能クローンの使用を参照してください。 このパラメータ値に対して デフォルトでは、この属性は更新されません。 |
使用上のノート
-
データ・セットの
schema_nameおよびschema_object属性は更新できません。 -
オブジェクトの登録を更新した後、ユーザーは、クラウド・リンクで更新された属性を使用してオブジェクトにアクセスするために最大10分待機する必要がある場合があります。
-
表またはビューの
READ WITH GRANT OPTION権限を持っている場合、別のユーザーのスキーマに存在する表またはビューの登録を更新できます。 -
データ・セットの登録を更新するときに設定するスコープは、
DBMS_CLOUD_LINK_ADMIN.GRANT_REGISTERで設定した値と一致するか、より制限的な場合にのみ適用されます。たとえば、ADMINがGRANT_REGISTERでスコープ'MY$TENANCY'を付与し、ユーザーがDBMS_CLOUD_LINK.UPDATE_REGISTRATIONでデータ・セットの登録を更新するときに'MY$REGION'を指定したとします。その場合は、次のようなエラーが表示されます:
ORA-20001: Share privileges are not enabled for current user or it is enabled but not for scope MY$REGION-
登録の更新時に、更新された登録に対する階層的な妥当性チェックは実行できません。無効な登録は、誰でも表示、検出、またはアクセスできなくなります。
-
データ・セットを登録したユーザーは、その属性を
DBMS_CLOUD_LINK.UPDATE_REGISTRATIONで更新できます。また、DBMS_CLOUD_LINKパッケージに対する実行権限と、DBMS_CLOUD_LINK_ADMIN.GRANT_REGISTERで割り当てられたレジスタ権限も必要です。デフォルトでは、ADMINユーザーおよびPDB_DBAのスキーマのみがこの権限を持ちます。 -
リモート・リージョンのリフレッシュ可能クローン上のデータ・セットの登録を更新する場合、リモート・リージョン・クローンでの
DBMS_CLOUD_LINK.UPDATE_REGISTRATIONの起動では、offload_targetsパラメータを除き、ソース・データベースと同じ値を持つ同じパラメータを使用する必要があります。たとえば、ソースAutonomous AI Databaseインスタンスでスコープを
MY$COMPARTMENTに設定してDBMS_CLOUD_LINK.UPDATE_REGISTRATIONを実行する場合、同じスコープ・パラメータ値(MY$COMPARTMENT)を使用してクロス・リージョン・リフレッシュ可能クローンでプロシージャを再度実行します。 -
ソースの
DBMS_CLOUD_LINK.REGISTERでoffload_targetsパラメータを指定する場合は、クロス・リージョン・リフレッシュ可能クローンにデータ・セットを登録するときに、このパラメータを省略する必要があります。