解决EXP-00079: 表 "PURCHASEORDER" 中的数据是被保护的。常规路径只能导出部分表。

在执行exp导出全库时候,遇到如下错误

EXP-00079: 表 "PURCHASEORDER" 中的数据是被保护的。常规路径只能导出部分表。

原因:这个警告出现是因为这张表启用了FGA(fine-grained access control policy)精细化访问控制策略。如果FGA在select上启用,那么exp可能不会导出整张表,因为FGA可能会重写查询。
只有sys用户和任何拥有exempt access policy权限的用户,才能select all rows。如果某个非sys用户没有exempt access policy权限,即使这张表是该用户的,也无法全表导出。
确认该表是否启用了FGA控制策略
解决这个问题的方法有两种
1.    授权该用户exempt access policy 权限
  (1)      在SQLPLUS 下以SYSDBA用户登录,授权在执行exp命令的用户 exempt access policy权限
       SQL > conn / as sysdba
  (2)      授权执行exp命令用户 exempt access policy 权限
       SQL > grant exempt access policy to exp_user;
  (3)      确认exp_user已经被成功授权
       SQL >select grantee from dba_role_privs where granted_role in
                   (select grantee from dba_role_privs where granted_role=’EXP_FULL_DATABASE’)
      好了,现在再次执行exp导出就不会报错了。
  2. 以sys用户执行exp命令导出目标表(linux环境为例)
        exp \‘/ as sysdba\‘ file=/app/dmp/full.dmp \
                          log=/app/dmp/full_exp.log \
                          tables=OE.PURCHASEORDER

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值