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

ここでは次のように指定します:

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