表のハイパーリンクの作成、管理および監視
表ハイパーリンクを作成、管理およびモニターするステップを示します。
表またはビューの表ハイパーリンクの作成
スキーマ・オブジェクト(表またはビュー)のアクセスを共有するために使用できる表ハイパーリンクを作成するステップを示します。
表ハイパーリンクを実行すると、表ハイパーリンクを生成するデータベース・ユーザーに付与された権限が使用されます。 表ハイパーリンクを生成するユーザーには、データへのアクセスを提供するために必要な最小限の権限が必要です。 セキュリティを維持するために、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つの数字を含める必要があります。 これらのルールは、
NULLPVF (パスワード検証関数)に関連付けられているデータベース・ユーザーのパスワード複雑性ルールに適用されるルールと同じです。 パスワード・パラメータを指定して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プロシージャ」を参照してください。