3.10 ランダム・リダクション・ポリシーの作成
ランダム・リダクション・ポリシーは、リダクションされたデータを、ランダムに生成した値(文字データ型の場合はUkjsl32[[]]]sなど)で表示します。
3.10.1 ランダム・リダクション・ポリシーを作成する構文
ランダム・リダクション・ポリシーでは、問合せを行ったアプリケーション・ユーザーに対し、列のデータ型に基づいてランダムに生成された値によるリダクション済のデータが表示されます。
LOB列がサポートされていないことに注意してください。
ランダム・リダクション・ポリシーを作成する場合の DBMS_REDACT.ADD_POLICYフィールドは次のとおりです。
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.RANDOMと入力します。function_typeパラメータを省略する場合、デフォルトのリダクションfunction_type設定は、DBMS_REDACT.FULLです。列のデータ型は、使用が許可されている
function_type設定を決定することに注意してください。「データ型に基づいた完全、部分、正規表現、ランダムおよびNULL化リダクションの比較」を参照してください。
3.10.2 例: ランダム・リダクション・ポリシー
DBMS_REDACT.ADD_POLICY PL/SQLプロシージャを使用して、ランダム・リダクション・ポリシーを作成できます。
例3-9では、ランダム値の生成方法を示します。SELECT文を実行するたびに、出力は異なります。
例3-9 ランダムにリダクションされるデータ・リダクションの値
BEGIN
DBMS_REDACT.ADD_POLICY(
object_schema => 'mavis',
object_name => 'cust_info',
column_name => 'login_username',
policy_name => 'redact_cust_rand_username',
function_type => DBMS_REDACT.RANDOM,
expression => 'SYS_CONTEXT(''USERENV'',''SESSION_USER'') = ''APP_USER''');
END;
/問合せおよびリダクションされた結果:
SELECT login_username FROM mavis.cust_info;
LOGIN_USERNAME
--------------
N[CG{\pTVcK
PL{opergHKV