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;