3.11 NULL化リダクション・ポリシーの作成
表またはビューの列の表示された値に対してNULL値を返すOracle Data Redactionポリシーを作成できます。
3.11.1 NULL値を返すポリシーの作成について
DBMS_REDACT.NULLIFY
function_type
パラメータは、列内のすべての問合せ結果データをリダクションし、NULL値を置換します。
このファンクションのタイプは、DBMS_REDACT.NULLIFY
関数のタイプがサポートするすべてのサポート対象列のデータ型で使用できます。また、データ型CLOB
およびNCLOB
もサポートします。DBMS_REDACT.NULLIFY
ファンクションを使用するには、最初にCOMPATIBLE
パラメータが12.2.0.0
以上に設定されているようにする必要があります。
3.11.2 NULL化リダクション・ポリシーを作成する構文
DBMS_REDACT.ADD_POLICY
プロシージャでは、完全リダクションを実行し、リダクションされた列にNULL値を表示するリダクション・ポリシーを作成できます。
DBMS_REDACT.ADD_POLICY
を使用してNULL値を返す構文は次のとおりです。
DBMS_REDACT.ADD_POLICY ( object_schema IN VARCHAR2 := NULL, object_name IN VARCHAR2, column_name IN VARCHAR2 := NULL, policy_name IN VARCHAR2, function_type IN BINARY_INTEGER := NULL, expression IN VARCHAR2, enable IN BOOLEAN := TRUE);
ここでは次のように指定します:
-
object_schema
、object_name
、column_name
、policy_name
、expression
、enable
: 「DBMS_REDACT.ADD_POLICYプロシージャの一般的な構文」を参照してください。 -
function_type
: リダクションのタイプの設定に使用するファンクションを指定します。DBMS_REDACT.NULLIFY
と入力します。function_type
パラメータを省略する場合、デフォルトの設定はDBMS_REDACT.FULL
です。列のデータ型は、使用が許可されている
function_type
設定を決定することに注意してください。「データ型に基づいた完全、部分、正規表現、ランダムおよびNULL化リダクションの比較」を参照してください。
3.11.3 例: NULL値を返すリダクション・ポリシー
DBMS_REDACT.ADD_POLICYプロシージャは、HR.EMPLOYEES
表のCOMMISSION_PCT
列にNULL化リダクションを追加します。
expression
パラメータにより、EXEMPT REDACTION POLICY
システムまたはスキーマ権限を付与されているユーザーを除き、この表に問合せをするあらゆるユーザーにポリシーが適用されます。
例3-10では、Oracle Data Redactionポリシーを作成する方法を示します。
例3-10 NULL値を返すリダクション・ポリシー
BEGIN DBMS_REDACT.ADD_POLICY( object_schema => 'hr', object_name => 'employees', column_name => 'commission_pct', policy_name => 'nullify_com_pct', function_type => DBMS_REDACT.NULLIFY, expression => '1=1'); END; /
問合せおよびリダクションされた結果:
SELECT COMMISSION_PCT FROM HR.EMPLOYEES; COMMISSION_PCT --------------