この記事ではData Redactionのポリシーを一括で有効化・無効化する方法について解説します。
Data Redactionのポリシーの有効化・無効化方法
Data Redactionのポリシーの有効化・無効化はそれぞれDBMS_REDACT.DISABLE_POLICYプロシージャ、DBMS_REDACT.ENABLE_POLICYプロシージャを使用して行います。
このプロシージャはポリシー単位で実行するため、リダクションポリシーが多数ある場合は大変な作業になります。
そこで、PL/SQLを使用してすべてのポリシーを有効化、無効化できるようにします。
ポリシーの一括有効化
すべてのリダクションポリシーを一括で有効化するPL/SQLは以下の通りです。
このPL/SQLをそのまま実行するとポリシーがすべて有効化されます。
BEGIN
FOR a IN(SELECT object_owner, object_name, policy_name, enable FROM redaction_policies where enable = 'NO' )LOOP
DBMS_REDACT.ENABLE_POLICY (
object_schema => a.object_owner,
object_name => a.object_name,
policy_name => a.policy_name);
END LOOP;
END;
/
「redaction_policies」ディクショナリビューから現在無効となっているポリシーの情報を選択し、そのポリシーを有効化します。
ポリシーの一括無効化
すべてのリダクションポリシーを一括で無効化するPL/SQLは以下の通りです。
このPL/SQLをそのまま実行するとポリシーがすべて無効化されます。
BEGIN
FOR a IN(SELECT object_owner, object_name, policy_name, enable FROM redaction_policies where enable = 'YES' )LOOP
DBMS_REDACT.DISABLE_POLICY (
object_schema => a.object_owner,
object_name => a.object_name,
policy_name => a.policy_name);
END LOOP;
END;
/
「redaction_policies」ディクショナリビューから現在有効となっているポリシーの情報を選択し、そのポリシーを無効化します。