表のハイパーリンクの作成、管理および監視
表ハイパーリンクを作成、管理およびモニターするステップを示します。
表またはビューの表ハイパーリンクの作成
スキーマ・オブジェクト(表またはビュー)のアクセスを共有するために使用できる表ハイパーリンクを作成するステップを示します。
表ハイパーリンクを実行すると、表ハイパーリンクを生成するデータベース・ユーザーに付与された権限が使用されます。表ハイパーリンクを生成するユーザーには、データへのアクセスを提供するために必要な最小限の権限が必要です。セキュリティを維持するために、Oracleでは、ADMINユーザーとしてDBMS_DATA_ACCESS.CREATE_URL
を実行しないことをお薦めします。
表のハイパーリンクを使用して、スキーマ・オブジェクト(表またはビュー)としてデータにアクセスできるようにするには:
SELECT文を使用した表ハイパーリンクの作成
SQL問合せ文を使用したデータへのアクセスを提供する表ハイパーリンクを作成するステップを示します。
表ハイパーリンクを実行すると、表ハイパーリンクを生成するデータベース・ユーザーに付与された権限が使用されます。表ハイパーリンクを生成するユーザーには、データへのアクセスを提供するために必要な最小限の権限が必要です。セキュリティを維持するために、Oracleでは、ADMINユーザーとしてDBMS_DATA_ACCESS.CREATE_URL
を実行しないことをお薦めします。
表のハイパーリンクを使用して、任意のSQL問合せ文としてデータにアクセスできるようにするには:
列に指定されているUI機能を使用した表ハイパーリンクの作成
表ハイパーリンクを作成する場合、column_lists
パラメータを使用して、指定した列のUI機能を指定できます。
column_lists
パラメータは、列ごとにオプションを指定するJSON値です。column_lists
でサポートされる値は、次の1つ以上です。
column_lists値 | 摘要 |
---|---|
order_by_columns |
ソートをサポートする列を指定します。列はJSON配列で指定されます。 |
filter_columns |
フィルタリングをサポートする列を指定します。列はJSON配列で指定されます。 |
default_color_columns |
指定した列に対してデフォルトの色付けのみを使用するように指定します。列はJSON配列で指定されます。 |
group_by_columns |
指定した列に対してグループ化基準を許可することを指定します(指定した列をグループ化してデータを表示することが許可されます)。列はJSON配列で指定されます。 |
表ハイパーリンクの表ビュー列レベルのUI機能を指定するには:
また、次の操作を行うこともできます。
DBMS_DATA_ACCESS.LIST_ACTIVE_URLS
を使用して、表のハイパーリンクを表示します。詳細は、表ハイパーリンクおよび表ハイパーリンク・グループのリストを参照してください。DBMS_DATA_ACCESS.EXTEND_URL
を使用して、表ハイパーリンクの存続期間を延長します。詳細は、EXTEND_URLプロシージャを参照してください。- サービス・レベルの保証とリソースが異なる表ハイパーリンクを生成します。たとえば、オブジェクトまたはSQL文へのアクセスはサービスHIGHまたはMEDIUMにマップできますが、別のオブジェクトまたはSQL文へのアクセスはLOWサービスにマップできます。詳細は、CREATE_URLプロシージャを参照してください。
パスワード保護表のハイパーリンクの作成
表ハイパーリンクを作成する場合、表ハイパーリンクのパスワードを指定できます。
ユーザーがパスワードで保護された表ハイパーリンクにアクセスする場合は、表ハイパーリンクの作成時に指定されたパスワードを使用して認証する必要があります。これにより、表ハイパーリンクが意図したよりも広いオーディエンスに公開される場合に、悪意のあるアクセスを回避するための追加のセキュリティ・ステップが提供されます。
パスワードで保護された表のハイパーリンクを作成するには:
DBMS_DATA_ACCESS.CREATE_URL
にpassword
パラメータを含める場合は、次の点に注意してください。
-
結果には、表ハイパーリンクURL値を含む
url
属性が含まれます。password
パラメータを指定しない場合、結果属性はpreauth_url
になります。この違いにより、パスワードで保護された表のハイパーリンクを区別できます。 -
パスワードの最小長は12文字で、パスワードには少なくとも1つの大文字、1つの小文字および1つの数字を含める必要があります。これらのルールは、
NULL
PVF (パスワード検証関数)に関連付けられているデータベース・ユーザーのパスワード複雑性ルールに適用されるルールと同じです。パスワード・パラメータを指定してCREATE_URL
が呼び出され、指定されたパスワードがこれらのルールに準拠していない場合(たとえば、パスワードが12文字より短い場合)、URLの作成はエラーで失敗します。詳細は、Autonomous Databaseでのパスワードの複雑度の管理を参照してください。
-
パスワードの設定後にパスワードを変更またはリセットするオプションはありません。
CREATE_URL
を実行した後で保存していない場合、または設定したパスワードを記憶できない場合は、新しい表ハイパーリンクを作成する必要があります。 -
パスワードで保護された表ハイパーリンクのパスワードと、URLを作成するユーザーのパスワードとの間には関連付けはありません。ユーザー
SCOTT
がCREATE_URL
を使用してパスワードで保護された表ハイパーリンクを作成した場合、作成される表ハイパーリンクURLのパスワードとユーザーSCOTT
のパスワードは関連付けられません。
表ハイパーリンクの無効化
適切な権限を持つユーザーは、いつでも表のハイパーリンクを無効にできます。
表のハイパーリンクを無効にするには、表ハイパーリンクid
が必要です。DBMS_DATA_ACCESS.LIST_ACTIVE_URLS
を使用して、表ハイパーリンクおよび関連するid
のリストを生成します。
DBMS_DATA_ACCESS.INVALIDATE_URL
を使用して、表のハイパーリンクを無効化します。たとえば:
DECLARE
status CLOB;
BEGIN
DBMS_DATA_ACCESS.INVALIDATE_URL
(
id => 'Vd1Px7QWASdqDbnndiuwTAyyEstv82PCHqS_example',
result => status);
dbms_output.put_line(status);
END;
/
DBMS_DATA_ACCESS.INVALIDATE_URL
を使用して、表ハイパーリンク・グループを無効にすることもできます。
詳細は、表のハイパーリンク・グループの無効化およびINVALIDATE_URLプロシージャを参照してください。
表のハイパーリンク・データを保護するための仮想プライベート・データベース・ポリシーの定義
Oracle Virtual Private Database (VPD)は、同じデータ・セットにフィルタを適用することで、ユーザーおよびアプリケーションの行レベルでデータ・アクセスを動的に制御できるセキュリティ機能です。表ハイパーリンクにアクセスすると、表ハイパーリンクの生成時に指定されたapplication_user_id
の値は、sys_context('DATA_ACCESS_CONTEXT$', 'USER_IDENTITY')
を介して使用できます。このアプリケーション・コンテキストの値を使用するVPDポリシーを定義して、アプリケーション・ユーザーに表示されるデータ、行を制限できます。
表のハイパーリンクを使用してデータを読み取るアクセス権を付与されたユーザーは、そのデータ(表、ビューまたはSELECT文で提供されるデータ)にアクセスして使用できます。表ハイパーリンクを生成したデータベースでVPDポリシーを定義することで、SYS_CONTEXTルールのapplication_user_id
値を使用して、より詳細な制御を提供できます。表のハイパーリンクを使用してデータを使用可能にする例を考えてみます。一部のデータへのアクセスを制限する場合は、VPDポリシーを追加できます。
たとえば:
詳細は、「Oracle Virtual Private Databaseを使用したデータ・アクセスの制御」を参照してください。
表のハイパーリンク使用状況の監視および表示
Autonomous Databaseには、表ハイパーリンクの使用状況をモニターできるビューが用意されています。
ビュー | 摘要 |
---|---|
V$DATA_ACCESS_URL_STATSおよびGV$DATA_ACCESS_URL_STATSビュー |
これらのビューは、経過時間、CPU時間、追加情報などの表ハイパーリンクの使用状況を追跡します。 |
表ハイパーリンクまたは表ハイパーリンク・グループの作成に関するノート
DBMS_DATA_ACCESS.CREATE_URL
を使用した表ハイパーリンクまたは表ハイパーリンク・グループの作成に関するノート:
-
オプションの
service_name
パラメータを使用して、生成された表ハイパーリンクが特定のサービス・レベルの保証およびリソースでサービスされるように指定できます。たとえば、service_name
パラメータを使用して、SQL文へのアクセスがHIGHサービスにマップされるように指定します。 -
表ハイパーリンク・データへのアクセスを制限する場合は、オプションの
inherit_acl
パラメータとacl
パラメータのいずれかまたは両方を使用できます。-
inherit_acl
: 表のハイパーリンク・データへのアクセスを制限する場合は、オプションのinherit_acl
パラメータを使用します。ACLを継承するには、このパラメータをTRUE
に設定します。このパラメータの値がTRUE
の場合、受信表ハイパーリンク・コンシューマのIPアドレスは、データへのアクセスを許可する前に、プロデューサ・データベースのACLで検証されます。プロデューサ・データベースにACLが構成されていない場合、inherit_acl
値は無視され、ACLチェックなしでデータ・アクセスが許可されます。 -
acl
: オプションのacl
パラメータを使用して、表ハイパーリンクに適用されるACLを指定します。パラメータ値は、許可されるIPアドレス、CIDRブロックまたはOCI VCN OCIDsのリストを指定します。acl
パラメータが指定されている場合、表ハイパーリンク・コンシューマは、ACLで指定されたホストのデータにのみアクセスできます。
inherit_acl
がTRUE
で、acl
パラメータがACLを指定するように設定されている場合、表ハイパーリンク・コンシューマは、acl
パラメータで指定されたホスト、またはAutonomous Databaseインスタンスに指定されたACLで定義された継承ホストから、表ハイパーリンクのデータにアクセスできます。詳細は、アクセス制御ルール(ACL)を使用したネットワーク・アクセスの構成を参照してください。
-
-
オプションのパラメータ
consistent
をTRUE
に設定すると、表ハイパーリンク・プロデューサは、異なるページ間で一貫してデータを生成します。これにより、コンシューマは、最初のページのアクセスに関連付けられたSCNと同じデータ・スナップショット(SCN)を使用して、表ハイパーリンクに関連付けられているすべてのページのデータにアクセスできます。このオプションを使用すると、プロデューサは一貫性のあるデータをコンシューマに返すことができます。コンシューマでは、レスポンスがページ区切りされ、複数のページが返されます(データはページごとに返され、アクセスされます)。consistent
がTRUE
に設定され、表ハイパーリンクが別のユーザーのスキーマのスキーマ・オブジェクトを参照する場合、表ハイパーリンクを作成するデータベース・ユーザーは、他のユーザーのスキーマに属する表ハイパーリンクで使用されるすべてのスキーマ・オブジェクトに対するFLASHBACK
権限を持っている必要があります。たとえば:
GRANT FLASHBACK ON TREE_SCHEMA.TREE_DATA TO SCOTT;
ノート: データベース・アクティビティが大量にあり、最初のページの取得と後続のページの取得の間に十分な時間が経過すると、最初のアクセスと一致する後続のデータを取得できない場合があります。この場合、取得はエラーになります。
詳細は、「表ハイパーリンクまたは表ハイパーリンク・グループを使用したデータへのアクセス」を参照してください。
-
プライベート・エンドポイントを含むAutonomous Databaseインスタンスに表ハイパーリンクを作成すると、結果には
"https://private-endpoint/adb/p/parurl-token/data"
という形式の値を持つprivate_preauth_url
という名前が含まれます。プライベート・エンドポイントを使用してAutonomous Databaseインスタンスに表ハイパーリンクを作成し、プライベート・エンドポイントが「パブリック・アクセスの許可」を有効にして構成されている場合、結果にはパブリック・エンドポイントの
preauth_url
とprivate_preauth_url
の両方が含まれます。詳細は、プライベート・エンドポイントの構成およびパブリック・アクセスを許可したプライベート・エンドポイントの使用を参照してください。
-
DBMS_DATA_ACCESS.LIST_ACTIVE_URLS
を使用して、表のハイパーリンクを表示します。詳細は、表ハイパーリンクおよび表ハイパーリンク・グループのリストを参照してください。 -
DBMS_DATA_ACCESS.EXTEND_URL
を使用して、表ハイパーリンクの存続期間を延長します。詳細は、EXTEND_URLプロシージャを参照してください。