My Oracle Support Banner

ORA-28102 Trying To Disable A Existent Policy Using Dbms_fga.disable_policy (Doc ID 2497666.1)

Last updated on APRIL 17, 2023

Applies to:

Oracle Database - Enterprise Edition - Version 12.1.0.2 and later
Information in this document applies to any platform.

Goal

After creating fga policies on the object, drop a column and after that drop a policy to run into ORA-28102

If a table has 2 or more FGA policies on its columns, after a column on which a FGA policy exists is dropped, the policy of that column is not dropped as per the documentation, but another policy on another column is dropped. The policy is visible in dba_audit_policies although it should have been dropped.


If one attempts to drop the policy for which the column does not exist, the user get ORA-28102: policy does not exist .


For the same table, if just 1 FGA policy is created for one column and that column is dropped, the policy is also dropped as per the documentation.


SQL> show user
USER is "SYS"
SQL> select policy_owner, object_schema, object_name, policy_name, policy_text, policy_column, enabled
   from dba_audit_policies
   where policy_name='xx_xxx_xxxxxx_xxxxx_6'
   order by policy_column;

SQL> exec dbms_fga.disable_policy(object_schema=>'xxxxx',object_name=>'xx_xxxxx',policy_name=>'xx_xxx_xxxxxx_xxxxx_6');
BEGIN dbms_fga.disable_policy(object_schema=>'xxxxx',object_name=>'xx_xxxxx',policy_name=>'xx_xxx_xxxxxx_xxxxx_6'); END;

*
ERROR en línea 1:
ORA-28102: policy does not exist
ORA-06512: at "SYS.DBMS_FGA", line 60
ORA-06512: at line 1


 

Solution

To view full details, sign in with your My Oracle Support account.

Don't have a My Oracle Support account? Click to get started!


In this Document
Goal
Solution
References


My Oracle Support provides customers with access to over a million knowledge articles and a vibrant support community of peers and Oracle experts.