ITPub博客

首页 > Linux操作系统 > Linux操作系统 > IMP后,报错ORA-28100————之解决。

IMP后,报错ORA-28100————之解决。

原创 Linux操作系统 作者:wei-xh 时间:2010-05-08 14:32:35 0 删除 编辑
我想把ncsi用户下的表导入到另一台机器上的ncsi_exc用户下。

IMP后,查询表数据,报错。
ORA-28100,策略函数方案NCSI无效。

上网查询后,原来是之前表所在的用户启用了VPD权限。
默认IMP后,表的VPD权限也会导入进去,而导入表的VPD权限是只能让NCSI用户访问,当前的用户ncsi_exc没访问权限。
在删除VPD权限后,可以正常访问了。
查询当前用户的VPD权限,可以通过数据字典视图USER_POLICIES获得。
通过如下方式可以删除当前用户下的所有VPD权限。
declare
  -- Local variables here
  i integer;
  str_schema varchar2(20) := '方案名';
  str_obj_name varchar2(20) ;
  str_group_name varchar2(20);
  str_policy_name varchar2(30);
begin
  -- Test statements here
  for item in (select * from user_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 USER_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_obj_name,str_group_name);     
  end loop;
end;

[ 本帖最后由 wei-xh 于 2010-4-30 11:01 编辑 ]

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/22034023/viewspace-662237/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
Oracle ACE组成员,DBGeeK用户组发起人。曾在DTCC、ORACLE技术嘉年华、Gdevops等公开场合做过数据库技术专题分享,2017年应Oracle邀请在世界最大的数据库会议OOW上做技术分享。组织翻译了《拨云见日,解密Oracle ASM内核》一书。

注册时间:2009-07-04

  • 博文量
    422
  • 访问量
    2425305