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 --------------