4.1 Oracle Data Redactionと、DMLおよびDDL操作

Oracle Data Redactionは、DML操作とDDL操作に影響します。特に、リダクションされる列がある表に対してSQLを発行するユーザーの場合です。

次のことに注意してください:

  • リダクションされる列がDML操作でのソースとして出現し、ターゲットが、リダクションされる列でない場合、ユーザーにEXEMPT REDACTION POLICY権限がなければ、Oracle Data Redactionで、これはポリシーを回避する試みとみなされ、ORA-28081: 権限が不十分です。コマンドはリダクションされるオブジェクトを参照していますというエラーが表示されてそれが妨げられます。
  • リダクションされる列がDDL操作でのソースとして出現した場合、ユーザーにEXEMPT REDACTION POLICY権限がなければ、Oracle Data Redactionで、これはポリシーを回避する試みとみなされ、ORA-28081: 権限が不十分です。コマンドはリダクションされるオブジェクトを参照していますというエラーが表示されてそれが妨げられます。
  • Oracle Data Pumpによってこの種の操作が実行されるため、リダクションされる列がある表のスキーマレベルのエクスポートを実行する必要があるユーザーに、システム・レベルまたはスキーマ・レベルでのEXEMPT REDACTION POLICY権限の付与が必要になることもあります。この権限は、DATABASE_EXP_FULL_DATABASEロールに含まれています。詳細は、「Oracle Data Pumpを使用したOracle Data Redactionポリシーおよびオブジェクト転送」を参照してください。
  • 内部でOracle Data MiningによってDML操作とDDL操作が発行されるため、ユーザーが、リダクションされる列がある表に基づいてデータ・マイニング・モデルを作成する必要がある場合は、そのユーザーにEXEMPT REDACTION POLICY権限を付与する必要がある場合があります。

次の例では、c1にはリダクション・ポリシーが定義されておらず、c2には定義されています。

例4-1 DMLによってORA-28081エラーが発生する

insert into t1(c1) select c2 from t2;
update t1 set c1 = (select c2 from t2);
delete from t1 where c1 in (select c2 from t2);

例4-2 DDLによってORA-28081エラーが発生する

create table t3 as select * from t2;