3.6 複数の名前付きポリシー式の作成および管理
名前付きの一元管理されるOracle Data Redactionポリシー式は、複数のリダクション・ポリシーで使用でき、複数の表またはビューに適用できます。
3.6.1 条件を定義するデータ・リダクション・ポリシー式について
Oracle Data Redaction名前付きポリシー式は、既存のデータ・リダクション・ポリシーで使用されているポリシー式に代わるものとして機能するよう設計されています。
ポリシー式により、実行時の条件に基づいてデータをリダクションできます。このタイプのポリシー式では、リダクション・ポリシーが定義されている表またはビューの列でリダイレクションが発生するかどうかに影響を与えることができます。デフォルトでは、データ・リダクション・ポリシー式は、その表またはビューに対して定義されているデータ・リダクション・ポリシーに属するすべての列に適用されます。あるいは、表またはビューの個々の列に対してポリシー式を作成して関連付けることもできます。これらの列レベルのポリシー式は、名前付きポリシー式と呼ばれます。名前付きポリシー式を適用する列は、すでにデータ・リダクション・ポリシーでリダクションされている必要があります。
データ・リダクション名前付きポリシー式は次の方法で使用できます。
-
各名前付きポリシー式は、同じまたは異なる表またはビューの複数の列に関連付けることができます。
-
各名前付きポリシー式は、同じまたは異なるデータ・リダクション・ポリシー内の列に関連付けることができます。
-
名前付きポリシー式は、関連付けられた列のデフォルトのポリシー式をオーバーライドします。デフォルトのポリシー式は、名前付きポリシー式が適用されていない列には引き続き適用されます。
-
名前付きポリシー式に対して行われた更新は、式のすべての列関連付けに適用されます。
-
複数の名前付きポリシー式を同じ列に関連付けることはできません。
- 名前付きポリシー式を異なるプラガブル・データベース(PDB)内の列に関連付けることはできません。
表3-8で、名前付きポリシー式の作成と管理に使用できるDBMS_REDACT
PL/SQLプロシージャについて説明します。ポリシー式についての情報を検索するには、REDACTION_EXPRESSIONS
データ・ディクショナリ・ビューを問い合せます。
表3-8 DBMS_REDACTポリシー式プロシージャ
プロシージャ | 説明 |
---|---|
|
データ・リダクション名前付きポリシー式を作成します |
|
データ・リダクション名前付きポリシー式を更新します |
|
データ・リダクション名前付きポリシー式を表またはビューの列に適用します |
|
データ・リダクション名前付きポリシー式を削除します |
3.6.2 データ・リダクション名前付きポリシー式の作成および適用
DBMS_REDACT.CREATE_POLICY_EXPRESSION
とDBMS_REDACT.APPLY_POLICY_EXPR_TO_COL
を使用すると、データ・リダクション名前付きポリシー式の作成と適用ができます。
3.6.3 データ・リダクション名前付きポリシー式の更新
DBMS_REDACT.UPDATE_POLICY_EXPRESSION
プロシージャを使用してデータ・リダクション名前付きポリシー式を更新できます。更新はただちに行われ、名前付きポリシー式を使用するすべての列に反映されます。
REDACTION_EXPRESSIONS
データ・ディクショナリ・ビューを問い合せて、既存のデータ・リダクション・ポリシー式を検索できます。
3.6.4 データ・リダクション名前付きポリシー式の削除
DBMS_REDACT.DROP_POLICY_EXPRESSION
プロシージャを使用してデータ・リダクション名前付きポリシーを削除できます。
REDACTION_EXPRESSIONS
データ・ディクショナリ・ビューを問い合せて、既存のデータ・リダクション名前付きポリシー式を検索できます。
3.6.5 チュートリアル: データ・リダクション名前付きポリシー式の作成および共有
このチュートリアルでは、Oracle Data Redaction名前付きポリシー式を作成して複数の表に適用し、この名前付きポリシー式を集中的に管理する方法を説明します。
3.6.5.1 ステップ1: このチュートリアル用のユーザーの作成
このチュートリアルでは、Oracle Data Redactionポリシーを作成するdr_admin
と、それらをテストするhr_clerk
の2人のユーザーを作成する必要があります。
COMPATIBLE
初期化パラメータが12.2.0.0
以上に設定されていることを確認します。この設定は、SHOW PARAMETER
コマンドを使用して確認できます。
3.6.5.2 ステップ2: Oracle Data Redactionポリシーの作成
ユーザーdr_admin
は、表HR.EMPLOYEES
およびHR.JOBS
を保護するOracle Data Redactionポリシーを作成する準備ができています。
HR.EMPLOYEES.SALARY
、HR.EMPLOYEES.COMMISSION_PCT
およびHR.JOBS.MAX_SALARY
のデータはリダクションされます。
3.6.5.4 ステップ4: リダクションされる表列に対する名前付きポリシー式の作成および適用
次に、ユーザーdr_admin
は、データ・リダクション名前付きポリシー式(hr_redact_pol
)を作成して、それを3つのリダクション済の表の列のうちの2つに適用する準備ができています。
hr_clerk
がリダクション済のデータを表示できるようにします。
hr_clerk
は、HR.EMPLOYEES.SALARY
およびHR.JOBS.MAX_SALARY
内のデータを表示できますが、列HR.EMPLOYEES.COMMISSION_PCT
内のデータはこのユーザーに対してはまだリダクションされます。