策略错误 ORA-28100:policy function schema FMIS1600 is invalid.

13 篇文章 0 订阅
2 篇文章 0 订阅
OGG相关(oracle报错)
目标端数据库imp之后,查询相关表,报 ORA-28100。这是以为再源端有vpd策略, 在目标端删除这些策略即可 。 
ALL_POLICIES   策略信息  DBA_,USER_ 
ALL_POLICY_GROUPS  定义的策略组 DBA_,USER_ 

1、查询策略 
  查看所有用户的策略: select OBJECT_OWNER,OBJECT_NAME,POLICY_GROUP,POLICY_NAME from dba_policies;   
  查看登录用户的策略:
SQL> select OBJECT_NAME,POLICY_GROUP,POLICY_NAME from user_policies;  

OBJECT_NAME                 POLICY_GROUP  
------------------------------ ------------------------------  
POLICY_NAME  
------------------------------  
ENMO_EMP                 SYS_DEFAULT  
POLICY_ENMO_EMP  

2、删除策略  
SQL> exec dbms_rls.drop_grouped_policy('AWEN','ENMO_EMP','SYS_DEFAULT','POLICY_ENMO_EMP');  

PL/SQL procedure successfully completed.  

下面的过程是网上一位同学写的,可以快速删除所有策略。 (有些情况可能不可用)
declare  
  -- Local variables here 
  i integer; 
  str_schema varchar2(20) := 'ods_yyjc_buf'; 
  str_obj_name varchar2(20) ; 
  str_group_name varchar2(20); 
  str_policy_name varchar2(30); 
begin 
  -- Test statements here 
  for item in (select * from all_policies) loop 
     str_obj_name := item.object_name; 
     str_group_name := item.policy_group; 
     str_policy_name := item.policy_name; 
      
     dbms_rls.drop_grouped_policy(object_schema => str_schema,object_name => str_obj_name, 
                                policy_group => str_group_name,policy_name => str_policy_name);      
  end loop; 
   
  for item in (select * from ALL_POLICY_GROUPS) loop 
     str_obj_name := item.object_name; 
     str_group_name := item.policy_group; 
     str_policy_name := str_schema; 
      
     dbms_rls.delete_policy_group(str_schema,str_obj_name,str_group_name);      
  end loop; 
end;
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值