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.REGISTERDBMS_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 登録済データ・セットのネームスペースを指定します。このパラメータに指定する値は、デフォルトでは大/小文字が区別されず、大文字に変換されます。たとえば、testnamespaceTESTNAMESPACEに変換されます。大/小文字を区別する値を指定するには、二重引用符(")で囲みます。たとえば、"testnamespace"testnamespaceとして扱われ、"TestNamespace"TestNamespaceとして扱われます(大/小文字は変更されません)。
name 登録済データ・セットの名前を指定します。このパラメータに指定する値は、デフォルトでは大/小文字が区別されず、大文字に変換されます。たとえば、testdatasetTESTDATASETに変換されます。大/小文字を区別する値を指定するには、二重引用符(")で囲みます。たとえば、"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に対するアクセス認可を付与するデータ・セット・ネームスペースを指定します。このパラメータに指定する値は、デフォルトでは大/小文字が区別されず、大文字に変換されます。たとえば、testnamespaceTESTNAMESPACEに変換されます。大/小文字を区別する値を指定するには、二重引用符(")で囲みます。たとえば、"testnamespace"testnamespaceとして扱われ、"TestNamespace"TestNamespaceとして扱われます(大/小文字は変更されません)。
name 指定されたdatabase_idのアクセス認可を付与するデータ・セット名を指定します。このパラメータに指定する値は、デフォルトでは大/小文字が区別されず、大文字に変換されます。たとえば、testdatasetTESTDATASETに変換されます。大/小文字を区別する値を指定するには、二重引用符(")で囲みます。たとえば、"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

データ・セットのネームスペースを指定します。このパラメータに指定する値は、デフォルトでは大/小文字が区別されず、大文字に変換されます。たとえば、testnamespaceTESTNAMESPACEに変換されます。大/小文字を区別する値を指定するには、それを二重引用符(")で囲みます。たとえば、"testnamespace"testnamespaceとして扱われ、"TestNamespace"TestNamespaceとして扱われます(大/小文字は変更されません)。

NULL値は、自律型AIデータベース・インスタンスに固有のシステム生成のnamespace値を指定します。

name データ・セット名を指定します。このパラメータに指定する値は、デフォルトでは大/小文字が区別されず、大文字に変換されます。たとえば、testdatasetTESTDATASETに変換されます。大/小文字を区別する値を指定するには、二重引用符(")で囲みます。たとえば、"testdataset"testdatasetとして扱われ、"TestDataset"TestDatasetとして扱われます(大/小文字は変更されません)。
description データを説明するテキストを指定します。
scope

データ・セットへのアクセスを許可するユーザーを示します。値は、次の1つ以上で構成されるカンマ区切りリストです:

  • データベースOCID: データ・セットへのアクセスは、OCIDによって識別される特定のAutonomous AI Databaseインスタンスに対して許可されています。

  • コンパートメントOCID: データ・セットへのアクセスは、コンパートメントOCIDによって識別されるコンパートメント内のデータベースに対して許可されます。

  • テナンシOCID: データ・セットへのアクセスは、テナンシOCIDによって識別されるテナンシ内のデータベースに対して許可されます。

  • リージョン名: データ・セットへのアクセスは、指定したリージョンで識別されるリージョン内のデータベースに対して許可されます。スコープによって、クラウド・リンクへのアクセスは1つのリージョン内に制限され、リージョン間には制限されません。別のリージョンのコンシューマがデータ・セットにアクセスできるのは、データ・セット所有者であるデータベースのクロス・リージョン・リフレッシュ可能クローンがコンシューマ・データベースのリージョンに存在する場合のみです。

    詳細は、「別のリージョンでのデータ・セットの登録または登録解除」を参照してください。

  • MY$COMPARTMENT: データ・セットへのアクセスは、データ・セット所有者と同じコンパートメント内のデータベースに対して許可されます。

  • MY$TENANCY: データ・セットへのアクセスは、データ・セット所有者と同じテナンシ内のデータベースに対して許可されます。

  • MY$REGION: データ・セットへのアクセスは、データ・セット所有者と同じリージョン内のデータベースに対して許可されます。

  • MY$POOL: データ・セットへのアクセスは、データ・セット所有者と同じエラスティック・プール内のデータベースに対して許可されます。

  • リージョンのリスト: データ・セットへのアクセスは、指定したリージョンのデータベースに対して許可されます。

    たとえば:

    scope => 'us-phoenix-1,us-ashburn-1',

    別のリージョンのコンシューマがデータ・セットにアクセスできるのは、データ・セット所有者であるデータベースのクロス・リージョン・リフレッシュ可能クローンがコンシューマ・データベースのリージョンに存在する場合のみです。

スコープ値MY$REGIONMY$TENANCYMY$COMPARTMENTおよびMY$POOLは、便利なマクロとして機能し、OCIDsに解決される変数です。

auth_required

データベースがデータ・セットから読み取るために追加の認可が必要であることを指定します。次のケースが考えられます。

  • 指定されたSCOPE内にあり、DBMS_CLOUD_LINK.GRANT_AUTHORIZATIONで認可されているデータベースは、データ・セットの行を表示できます。

  • 指定されたSCOPE内にあるが、DBMS_CLOUD_LINK.GRANT_AUTHORIZATIONで認可されていないデータベースは、データ・セット行を表示できません。この場合、認可のないコンシューマは、データセットを空とみなします。

  • 指定されたSCOPE内にないデータベースでは、データ・セットにアクセスしようとするとエラーが表示されます。

data_set_owner データセットの所有者を指定します。これは、データ・セットが属するユーザー、またはデータ・セットの更新と保守を担当するユーザーを示します。たとえば、data_set_ownerを、データ・セットを登録したユーザーの電子メール・アドレスに設定できます。
offload_targets

データ・セットが登録されているAutonomous AI Databaseから、データ・セットへのアクセスがオフロードされるリフレッシュ可能クローンの1つ以上のAutonomous AI Database OCIDsを指定します。

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 AI DatabaseインスタンスのOCIDです。

たとえば、3つのOFFLOAD_TARGET/CLOUD_LINK_DATABASE_ID値ペアを持つ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に明示的なエントリがあるリクエストを除く)にオフロードされます。

たとえば、1つの明示的なOFFLOAD_TARGET/CLOUD_LINK_DATABASE_ID値ペアと1つのANYエントリを持つ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" } ] }

DBMS_CLOUD_LINK.REGISTERは、OFFLOAD_TARGET値として指定されたOCIDが同じリージョン内のリフレッシュ可能クローンのOCIDではない場合にエラーを報告します。

リフレッシュ可能クローンの使用の詳細は、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.REGISTERoffload_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のアクセス認可を取り消すデータ・セット・ネームスペースを指定します。このパラメータに指定する値は、デフォルトでは大/小文字が区別されず、大文字に変換されます。たとえば、testnamespaceTESTNAMESPACEに変換されます。大/小文字を区別する値を指定するには、二重引用符(")で囲みます。たとえば、"testnamespace"testnamespaceとして扱われ、"TestNamespace"TestNamespaceとして扱われます(大/小文字は変更されません)。
name 指定されたdatabase_idのアクセス認可を取り消すデータ・セット名を指定します。このパラメータに指定する値は、デフォルトでは大/小文字が区別されず、大文字に変換されます。たとえば、testdatasetTESTDATASETに変換されます。大/小文字を区別する値を指定するには、二重引用符(")で囲みます。たとえば、"testdataset"testdatasetとして扱われ、"TestDataset"TestDatasetとして扱われます(大/小文字は変更されません)。

UNREGISTERプロシージャ

このプロシージャにより、REGISTERプロシージャを使用して表またはビューを以前に登録したユーザーは、表またはビューを登録解除して、リモート・アクセスに使用できなくなります。

構文

DBMS_CLOUD_LINK.UNREGISTER(
      namespace        IN   VARCHAR2,
      name             IN   VARCHAR2
);

パラメータ

パラメータ 摘要
namespace 名前空間を指定します。このパラメータに指定する値は、デフォルトでは大/小文字が区別されず、大文字に変換されます。たとえば、testnamespaceTESTNAMESPACEに変換されます。大/小文字を区別する値を指定するには、二重引用符(")で囲みます。たとえば、"testnamespace"testnamespaceとして扱われ、"TestNamespace"TestNamespaceとして扱われます(大/小文字は変更されません)。
name データ・セット名を指定します。このパラメータに指定する値は、デフォルトでは大/小文字が区別されず、大文字に変換されます。たとえば、testdatasetTESTDATASETに変換されます。大/小文字を区別する値を指定するには、二重引用符(")で囲みます。たとえば、"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 更新するデータセットのネームスペースを指定します。このパラメータに指定する値は、デフォルトでは大/小文字が区別されず、大文字に変換されます。たとえば、testnamespaceTESTNAMESPACEに変換されます。大/小文字を区別する値を指定するには、二重引用符(")で囲みます。たとえば、"testnamespace"testnamespaceとして扱われ、"TestNamespace"TestNamespaceとして扱われます(大/小文字は変更されません)。
name 更新するデータ・セットの名前を指定します。このパラメータに指定する値は、デフォルトでは大/小文字が区別されず、大文字に変換されます。たとえば、testdatasetTESTDATASETに変換されます。大/小文字を区別する値を指定するには、二重引用符(")で囲みます。たとえば、"testdataset"testdatasetとして扱われ、"TestDataset"TestDatasetとして扱われます(大/小文字は変更されません)。
description

データを説明するために更新されたテキストを指定します。

このパラメータ値に対してNULLが渡された場合、属性は変更されません。

デフォルトでは、この属性は更新されません。

scope

指定された値でスコープを更新します。スコープは、データ・セットへのアクセスを許可するユーザーを示します。値は、次の1つ以上で構成されるカンマ区切りリストです:

  • データベースOCID: データ・セットへのアクセスは、OCIDによって識別される特定のAutonomous AI Databaseインスタンスに対して許可されています。

  • コンパートメントOCID: データ・セットへのアクセスは、コンパートメントOCIDによって識別されるコンパートメント内のデータベースに対して許可されます。

  • テナンシOCID: データ・セットへのアクセスは、テナンシOCIDによって識別されるテナンシ内のデータベースに対して許可されます。

  • リージョン名: データ・セットへのアクセスは、指定したリージョンで識別されるリージョン内のデータベースに対して許可されます。スコープによって、クラウド・リンクへのアクセスは1つのリージョン内に制限され、リージョン間には制限されません。別のリージョンのコンシューマがデータ・セットにアクセスできるのは、データ・セット所有者であるデータベースのクロス・リージョン・リフレッシュ可能クローンがコンシューマ・データベースのリージョンに存在する場合のみです。

    詳細は、「別のリージョンでのデータ・セットの登録または登録解除」を参照してください。

  • MY$COMPARTMENT: データ・セットへのアクセスは、データ・セット所有者と同じコンパートメント内のデータベースに対して許可されます。

  • MY$TENANCY: データ・セットへのアクセスは、データ・セット所有者と同じテナンシ内のデータベースに対して許可されます。

  • MY$REGION: データ・セットへのアクセスは、データ・セット所有者と同じリージョン内のデータベースに対して許可されます。

  • MY$POOL: データ・セットへのアクセスは、データ・セット所有者と同じエラスティック・プール内のデータベースに対して許可されます。

  • リージョンのリスト: データ・セットへのアクセスは、指定したリージョンのデータベースに対して許可されます。

    たとえば:

    scope => 'us-phoenix-1,us-ashburn-1',

    別のリージョンのコンシューマがデータ・セットにアクセスできるのは、データ・セット所有者であるデータベースのクロス・リージョン・リフレッシュ可能クローンがコンシューマ・データベースのリージョンに存在する場合のみです。

スコープ値MY$REGIONMY$TENANCYMY$COMPARTMENTおよびMY$POOLは、便利なマクロとして機能し、OCIDsに解決される変数です。

このパラメータ値に対してNULLが渡された場合、属性は変更されません。

デフォルトでは、この属性は更新されません。

auth_required

データベースがデータ・セットから読み取るために追加の認可が必要であることを指定します。次のケースが考えられます。

  • 指定されたSCOPE内にあり、DBMS_CLOUD_LINK.GRANT_AUTHORIZATIONで認可されているデータベースは、データ・セットの行を表示できます。

  • 指定されたSCOPE内にあるが、DBMS_CLOUD_LINK.GRANT_AUTHORIZATIONで認可されていないデータベースは、データ・セット行を表示できません。この場合、認可のないコンシューマは、データセットを空とみなします。

  • 指定されたSCOPE内にないデータベースでは、データ・セットにアクセスしようとするとエラーが表示されます。

このパラメータ値に対してNULLが渡された場合、属性は変更されません。

デフォルトでは、この属性は更新されません。

data_set_owner

データ・セットの所有者を指定します。これは、データ・セットが属するユーザー、またはデータ・セットの更新と保守を担当するユーザーを示します。たとえば、データ・セットを登録したユーザーの電子メール・アドレスにdata_set_ownerを設定できます。

このパラメータ値に対してNULLが渡された場合、属性は変更されません。

デフォルトでは、この属性は更新されません。

offload_targets

データ・セットが登録されているAutonomous AI Databaseから、データ・セットへのアクセスがオフロードされるリフレッシュ可能クローンの1つ以上のAutonomous AI Database OCIDsを指定します。

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 AI DatabaseインスタンスのOCIDです。

たとえば、3つのOFFLOAD_TARGET/CLOUD_LINK_DATABASE_ID値ペアを持つ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に明示的なエントリがあるリクエストを除く)にオフロードされます。

たとえば、1つの明示的なOFFLOAD_TARGET/CLOUD_LINK_DATABASE_ID値ペアと1つのANYエントリを持つ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" } ] }

DBMS_CLOUD_LINK.REGISTERは、OFFLOAD_TARGET値として指定されたOCIDが同じリージョン内のリフレッシュ可能クローンのOCIDではない場合にエラーを報告します。

リフレッシュ可能クローンの使用の詳細は、Autonomous AI Databaseでのリフレッシュ可能クローンの使用を参照してください。

このパラメータ値に対してNULLが渡された場合、属性は変更されません。

デフォルトでは、この属性は更新されません。

使用上のノート

  • データ・セットの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.REGISTERoffload_targetsパラメータを指定する場合は、クロス・リージョン・リフレッシュ可能クローンにデータ・セットを登録するときに、このパラメータを省略する必要があります。