3.14 複数列のリダクション

データ・リダクション・ポリシーで2つ以上の列をリダクションできます。

3.14.1 単一の表またはビューの場合のデータ・リダクション・ポリシーへの列の追加

1つの表またはビューの場合に、様々なリダクション・タイプおよび名前付きポリシー式を使用して、様々なデータ型の列をリダクションできます。

  1. DBMS_REDACT PL/SQLパッケージに対するEXECUTE権限と、ADMINISTER REDACTION POLICYシステムまたはスキーマ権限があるユーザーでPDBに接続します。
  2. DBMS_REDACT.ADD_POLICYを使用することで、リダクションする必要がある最初の列に対するポリシーを作成します。
  3. DBMS_REDACT.ALTER_POLICYプロシージャを使用して、ポリシーに次の列を追加します。
    必要に応じて、actioncolumn_namefunction_typeおよびfunction_parametersパラメータ(またはregexp_で始まるパラメータ)を設定して、新しい列に対するリダクションを定義しますが、object_schemaobject_namepolicy_nameまたはexpressionパラメータは変更しないでください。これらのパラメータは、新しくリダクションされる列に対しても変更はありません。
  4. 名前付きポリシー式を作成し、リダクションされる列にそれらを適用します。
    名前付きポリシー式がその列に適用されない場合は、DBMS_REDACT.ADD_POLICYからのデフォルトのポリシー式が適用されます。

3.14.2 例: 複数列のリダクション

DBMS_REDACT.ALTER_POLICYプロシージャによって、複数の列をリダクションできます。

例3-12では、既存のデータ・リダクション・ポリシーに列を追加する方法を示します。この例のactionパラメータは、DBMS_REDACT.ADD_COLUMNを使用して新しい列を追加する必要があることを定義しています。新しい列の名前であるcard_numは、column_nameパラメータによって設定されます。

例3-12 データ・リダクション・ポリシーへの列の追加

BEGIN
 DBMS_REDACT.ALTER_POLICY(
  object_schema       => 'mavis', 
  object_name         => 'cust_info', 
  policy_name         => 'redact_cust_user_ids', 
  action              => DBMS_REDACT.ADD_COLUMN,
  column_name         => 'card_num',
  function_type       => DBMS_REDACT.FULL);
END;
/