Autonomous Databaseでの読取り専用データ・アクセスに対する事前認証済リクエストURLの使用
PAR URLを使用すると、データにアクセスするためのPAR URL以外の追加情報を指定することなく、データベースからデータを簡単に取得できます。ユーザーは、ブラウザでPAR URLを指定するか、RESTクライアントを使用して、データベースによって強制されるセキュリティ制御に従ってデータにアクセスできます。ユーザーは、PAR URLに問合せパラメータを追加して、ブラウザから取得したデータを表形式で表示できます。
- Autonomous Databaseでの事前認証済リクエスト(PAR) URLについて
PAR URLは、事前認証済リクエスト(PAR) URLの生成方法に応じて、表またはビューのデータへのアクセス、またはSQL問合せの実行を提供します。 - 表またはビューのPAR URLの生成
スキーマ・オブジェクト(表またはビュー)のアクセスを共有するために使用できるPAR URLを生成するステップを示します。 - SELECT文を使用したPAR URLの生成
SQL問合せ文を使用したデータへのアクセスを提供するPAR URLの生成ステップを示します。 - PAR URLデータを保護するための仮想プライベート・データベース・ポリシーの定義
PAR URLと共有するデータに対してOracle Virtual Private Database (VPD)ポリシーを定義することで、特定のPAR URLに対してデータのサブセット(行)のみが表示されるように、きめ細かいアクセス制御を提供できます。 - PAR URLのリスト
Autonomous Databaseインスタンスで生成したアクティブなPAR URLをリストでき、ADMINユーザーはすべてのアクティブなPAR URLをリストできます。 - PAR URLを使用したデータへのアクセス
PAR URLデータは、JSON形式で取得および返され、ページ区切りされます。 - PAR URLを使用した表形式のデータおよび表示へのアクセス
事前認証済リクエスト(PAR) URLデータは、ブラウザから表形式で取得および表示されます。 - PAR URLの無効化
適切な権限を持つユーザーはいつでもPAR URLを無効にできます。 - PAR URL使用状況のモニターおよび表示
Autonomous Databaseには、PAR URL使用状況をモニターできるビューが用意されています。 - PAR URLを使用したデータの共有に関するノート
Autonomous DatabaseでのPAR URLの使用に関するノートを提供します。
親トピック: データ共有
Autonomous Databaseでの事前認証済リクエスト(PAR) URLについて
PAR URLは、事前認証済リクエスト(PAR) URLの生成方法に応じて、表またはビューのデータ、またはSQL問合せの実行によるデータへのアクセスを提供します。
PAR URLを生成する際、有効期限として(たとえば、PAR URLを120分後に期限切れにするように設定したり、有効期限として(たとえば、PAR URLが10回使用された後にPAR URLが期限切れに)指定します。
PAR URLには次のものがあります。
-
パブリック・アクセス: PAR URLを使用すると、パブリック・インターネット上のデータ受信者は、データがプライベート・サブネットのAutonomous Databaseインスタンスにあるときにデータにアクセスできます。
-
有効期限: データ・プロバイダは、PAR URLの有効期限を指定します。つまり、PAR URLの有効期限が切れるまでの期間に制限されます(最大90日間)。
-
有効期限使用数の制限: データ・プロバイダは、受信者がPAR URLを使用してデータにアクセスできる回数に関する制限を指定できます。
-
エンドポイントの透過性: データ・プロバイダは、PAR URLに表示されないようにAutonomous Database名を非表示にできます。
PAR URLのユースケース
PAR URLの生成および提供では、次のユースケースがサポートされます。
使用例 | 説明 |
---|---|
組織コラボレーション内 |
PAR URLは、緊急データ・アクセスに使用できます。クリティカルなインシデント調査中など、迅速な対応が必要な状況では、新しいデータベース・アカウントの作成や既存の権限の変更を必要とせずに、特定のデータへの即時および一時的なアクセスを許可するPAR URLを指定します。 |
BB(Business to Business)アプリケーション |
ビジネス・パートナはデータに簡単にアクセスできます。PAR URLを使用すると、ビジネス・パートナにデータやレポートに簡単にアクセスできる方法を提供できます。これにより、手動のレポート生成や電子メール配信が不要になります。 |
サードパーティの監査とレビュー |
外部監査者またはレビュー担当者が特定のデータへのアクセスを期間限定する必要がある場合、データベースの全体的なセキュリティを損なうことなく、PAR URLによって必要なアクセス権を付与できます。 |
製品としてのデータ(デジタル・コマース) |
ベンダーは、PAR URLを使用して、購入したコンテンツやデータへのアクセスを限定的または1回のみ許可できます。アクセスすると、URLは期限切れになり、製品の排他性が保護され、効率的で安全な配信が保証されます。 |
PAR URLのセキュリティ・ベスト・プラクティス
PAR URLを生成および使用するためのベスト・プラクティスを次に示します。
-
短い有効期限の設定: PAR URLは、必要な最小時間のみ有効である必要があります。有効期間が短いほど、PAR URLが危険にさらされるリスクは低くなります。
-
PAR無効化: PAR URLが不要になったらすぐに無効化します。
-
適切な権限の使用: PAR URLは、PAR URLを生成するデータベース・ユーザーに付与された権限を使用して実行されます。PAR URLを生成するユーザーは、データへのアクセスを提供するために必要な最小限の権限を持っている必要があります。
-
コンテンツ・セキュリティ: 意図しない動的データを共有するリスクを軽減するには:
-
PAR URLで共有するデータの上にビューを作成し、ビュー定義が最新であることを監視します。
-
必要に応じて、PAR URLの生成時にVPDポリシーを作成します。VPDポリシーを使用して、PAR URLユーザーに表示される行を制限できます。
-
-
ロード・モニタリング: PerfHubおよびSQLモニタリングを使用してPAR URL問合せロードをモニターします。
コンピュート自動スケーリングを有効にし、データ・セット・サイズおよびPAR URL問合せロードに対してCPU数が適切にサイズ設定されていることを確認します。
表またはビューのPAR URLの生成
スキーマ・オブジェクト(表またはビュー)のアクセスを共有するために使用できるPAR URLを生成するステップを示します。
PAR URLを実行すると、PAR URLを生成するデータベース・ユーザーに付与された権限が使用されます。PAR URLを生成するユーザーは、データへのアクセスを提供するために必要な最小限の権限を持っている必要があります。セキュリティを維持するために、OracleではADMINユーザーとしてDBMS_DATA_ACCESS.GET_PREAUTHENTICATED_URL
を実行しないことをお薦めします。
PAR URLを使用してデータへのアクセスをスキーマ・オブジェクト(表またはビュー)として提供するには:
SELECT文を使用したPAR URLの生成
SQL問合せ文を使用してデータへのアクセスを提供するPAR URLを生成するステップを示します。
PAR URLを実行すると、PAR URLを生成するデータベース・ユーザーに付与された権限が使用されます。PAR URLを生成するユーザーは、データへのアクセスを提供するために必要な最小限の権限を持っている必要があります。セキュリティを維持するために、OracleではADMINユーザーとしてDBMS_DATA_ACCESS.GET_PREAUTHENTICATED_URL
を実行しないことをお薦めします。
PAR URLを使用して任意のSQL問合せ文としてデータにアクセスできるようにするには:
PAR URLデータを保護するための仮想プライベート・データベース・ポリシーの定義
Oracle Virtual Private Database (VPD)は、同じデータ・セットにフィルタを適用することで、ユーザーおよびアプリケーションの行レベルでデータ・アクセスを動的に制御できるセキュリティ機能です。PAR URLにアクセスすると、PAR URLの生成時に指定されたapplication_user_id
の値は、sys_context('DATA_ACCESS_CONTEXT$', 'USER_IDENTITY')
を介して使用できます。このアプリケーション・コンテキストの値を使用するVPDポリシーを定義して、アプリケーション・ユーザーに表示されるデータ、行を制限できます。
PAR URLを使用してデータを読み取るためのアクセス権を付与されたユーザーは、データ(表、ビューまたはselect文で提供されるデータ)にアクセスして使用できます。PAR URLを生成したデータベースでVPDポリシーを定義することで、SYS_CONTEXTルールのapplication_user_id
値を使用して、より詳細な制御を提供できます。PAR URLを使用してデータを使用できる例を考えてみます。一部のデータへのアクセスを制限する場合は、VPDポリシーを追加できます。
次に例を示します。
詳細は、Oracle Virtual Private Databaseを使用したデータ・アクセスの制御を参照してください。
PAR URLのリスト
Autonomous Databaseインスタンスで生成したアクティブなPAR URLをリストでき、ADMINユーザーはすべてのアクティブなPAR URLをリストできます。
DBMS_DATA_ACCESS.LIST_ACTIVE_URLS
を実行して、アクティブなPAR URLをリストします。たとえば:
DECLARE
result CLOB;
BEGIN
result := DBMS_DATA_ACCESS.LIST_ACTIVE_URLS
;
dbms_output.put_line(result);
END;
/
詳細は、LIST_ACTIVE_URLSファンクションを参照してください。
DBMS_DATA_ACCESS.LIST_ACTIVE_URLS
の動作は、実行者によって異なります。実行者がADMINまたはPDB_DBA
ロールを持つユーザーの場合、このファンクションは、PAR URLを生成したユーザーに関係なく、すべてのアクティブなPAR URLをリストします。実行者がADMINユーザーではなく、PDB_DBA
ロールを持つユーザーでない場合、リストには、実行者が生成したアクティブなPAR URLのみが含まれます。
PAR URLを使用したデータへのアクセス
PAR URLデータは、JSON形式で取得および返され、ページ区切りされます。
データには、ブラウザでPAR URLを使用するか、任意のRESTクライアントを使用してアクセスできます。返されるデータは、一度に最大100レコードにアクセスできるようにページ区切りで、レスポンスの合計データ・サイズは1MBに制限されます。limit
問合せパラメータを指定して、フェッチされるレコード数を制限できます。PAR URL認証が失敗した場合、またはリクエストされたPAR URLの有効期限が切れている場合、PAR URLデータの取得はブロックされます。
人間が読みやすくするために、ブラウザからアクセスしたときに返されるデータを表形式で表示でき、問合せパラメータがPAR URLに追加されます。手順については、PAR URLを使用した表形式のデータおよび表示へのアクセスを参照してください。
たとえば、PAR URLを使用します。
curl https://dataaccess.adb.us-chicago-1.oraclecloudapps.com/adb/p/K6XExample/data
データに複数のページが含まれる場合、PAR URLレスポンスには、前または次のページのリンクが含まれます。これにより、データのフェッチ中にどちらの方向にもナビゲートできます。JSONには、現在のページを指すself
リンクと、フェッチできるデータがさらにあるかどうかを示すhasMore
属性も含まれています。
レスポンス形式は次のとおりです。
{
"items": [], <-- Array of records from database
"hasMore": true OR false, <-- Indicates if there are more records to fetch or not
"limit": Number, <-- Indicates number of records in the page. Maximum allowed number is 100.
"offset": Number, <-- Offset indicating the start of the current page
"count": Number, <-- Count of records in the current page
"links": [
{
"rel": "self",
"href": "{Link to preauth url for the current page}"
},
{
"rel": "previous",
"href": "{Link to preauth url for the previous page}"
},
{
"rel": "next",
"href": "{Link to preauth url for the next page}"
}
]
}
たとえば、PAR URLからのサンプル・レスポンスを次に示します(わかりやすくするために改行が追加されています)。
{"items":[
{"COUNTY":"Main","SPECIES":"Alder","HEIGHT":45},
{"COUNTY":"First","SPECIES":"Chestnut","HEIGHT":51},{"COUNTY":"Main","SPECIES":"Hemlock","HEIGHT":17},
{"COUNTY":"Main","SPECIES":"Douglas-fir","HEIGHT":34},{"COUNTY":"First","SPECIES":"Larch","HEIGHT":12},
{"COUNTY":"Main","SPECIES":"Cedar","HEIGHT":21},{"COUNTY":"First","SPECIES":"Douglas-fir","HEIGHT":10},
{"COUNTY":"Main","SPECIES":"Yew","HEIGHT":11},{"COUNTY":"First","SPECIES":"Willow","HEIGHT":17},
{"COUNTY":"Main","SPECIES":"Pine","HEIGHT":29},{"COUNTY":"First","SPECIES":"Pine","HEIGHT":16},
{"COUNTY":"First","SPECIES":"Spruce","HEIGHT":6},{"COUNTY":"Main","SPECIES":"Spruce","HEIGHT":8},
{"COUNTY":"First","SPECIES":"Hawthorn","HEIGHT":19},{"COUNTY":"First","SPECIES":"Maple","HEIGHT":16},
{"COUNTY":"Main","SPECIES":"Aspen","HEIGHT":35},{"COUNTY":"First","SPECIES":"Larch","HEIGHT":27},
{"COUNTY":"First","SPECIES":"Cherry","HEIGHT":20},{"COUNTY":"Main","SPECIES":"Pine","HEIGHT":37},
{"COUNTY":"Main","SPECIES":"Redwood","HEIGHT":78},{"COUNTY":"Main","SPECIES":"Alder","HEIGHT":45},
{"COUNTY":"First","SPECIES":"Chestnut","HEIGHT":51},{"COUNTY":"Main","SPECIES":"Hemlock","HEIGHT":17},
{"COUNTY":"Main","SPECIES":"Douglas-fir","HEIGHT":34},{"COUNTY":"First","SPECIES":"Larch","HEIGHT":12},
{"COUNTY":"Main","SPECIES":"Cedar","HEIGHT":21},{"COUNTY":"First","SPECIES":"Douglas-fir","HEIGHT":10},
{"COUNTY":"Main","SPECIES":"Redwood","HEIGHT":78}],
"hasMore":false,
"limit":100,
"offset":0,
"count":30,
"links":
[
{"rel":"self",
"href":"https://dataaccess.adb.us-ashburn-1.oraclecloudapps.com/adb/p/F5Sn..._example/data"}
]}
PAR URLの生成時にSELECT
文でバインド変数を使用する場合は、PAR URLデータにアクセスするための問合せパラメータとしてバインド変数値を渡す必要があります。バインド変数のサポートは、NUMBER
およびVARCHAR2
列タイプで使用できます。
たとえば、次のSQL文を使用してPAR URLが生成されます。
sql_statement = 'SELECT * FROM TREE_DATA WHERE COUNTY = :COUNTY'
生成されたPAR URLを、データにアクセスするための追加問合せパラメータとしてバインド変数値とともに使用します。
curl https://dataaccess.adb.us-chicago-1.oraclecloudapps.com/adb/p/K6X...example/data?COUNTY=MAIN
詳細は、GET_PREAUTHENTICATED_URLプロシージャを参照してください。
PAR URLを使用したデータへのアクセスおよび表形式での表示
事前認証済リクエスト(PAR) URLデータは、ブラウザから表形式で取得および表示されます。
?view=table
問合せパラメータを任意のPAR URLに追加します。
?view=table
が付加されたPAR URLを使用します。https://dataaccess.adb.us-ashburn-1.oraclecloudapps.com/adb/p/F5Sn..._example/data?view=table
?view=table
が追加されたPAR URLへのサンプル・レスポンスを次に示します:
列データのソート
列は、昇順または降順にソートできます。これを行うには、列ドロップダウン矢印をクリックし、「昇順ソート」または「降順ソート」を選択します。
次に、HEIGHT列が降順にソートされたサンプル表のスクリーンショットを示します。
列データのフィルタ処理
列値をフィルタできます。列をフィルタするには、列ドロップダウン矢印をクリックし、入力テキスト・ボックスにフィルタ・テキストを入力して、[Enter]をクリックします。
スプルース・ツリーのデータのみを表示するようにフィルタされたSPECIES列を含むサンプル表のスクリーンショットを次に示します。
「入力」をクリックすると、スプルース・ツリーの行のみが表示されます:
カラムデータの着色
デフォルトでは、どの列も色付けされていません。カラム値に基づいて、事前に設定された色で色を付けるカラムを選択できます。色を付ける列を指定するには、colored_column_names
問合せパラメータとして列名を指定します。
https://dataaccess.adb.us-ashburn-1.oraclecloudapps.com/adb/p/F5Sn..._example/data?view=table&colored_column_names=column1,column2
次に、PAR URLのサンプルと結果表の一部のスクリーンショットを示します。結果の表には、COUNTY列およびSPECIES列の色付きデータがあります。「SPECIES」列は、アルファベットの昇順でソートされます。
https://dataaccess.adb.us-ashburn-1.oraclecloudapps.com/adb/p/F5Sn..._example/data?view=table&colored_column_names=COUNTY,SPECIES
カラムデータタイプの着色
colored_column_types
問合せパラメータとしてデータ型を指定することで、色付けする特定の列データ型を選択することもできます。
このパラメータでは、すべての文字列(VARCHAR)列を色付けするcolored_column_types=VARCHAR
と、データ型を色付けしないcolored_column_types=NONE
がサポートされます。
たとえば、次のとおりです。
https://dataaccess.adb.us-ashburn-1.oraclecloudapps.com/adb/p/F5Sn..._example/data?view=table&colored_column_types=VARCHAR
PAR URLの無効化
適切な権限を持つユーザーは、いつでもPAR URLを無効にできます。
PAR URLを無効にするには、PAR URL id
が必要です。DBMS_DATA_ACCESS.LIST_ACTIVE_URLS
を使用して、各PAR URLおよび関連するid
をリストします。
PAR URLを無効にするには、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;
/
詳細は、INVALIDATE_URLプロシージャを参照してください。
PAR URL使用状況の監視および表示
Autonomous Databaseには、PAR URLの使用状況をモニターできるビューが用意されています。
ビュー | 説明 |
---|---|
V$DATA_ACCESS_URL_STATSおよびGV$DATA_ACCESS_URL_STATSビュー |
これらのビューは、経過時間、CPU時間、追加情報など、PAR URLの使用状況を追跡します。 |