【导入导出】EXP-00079

当我们对一个启用管理精细审计的表进行导出数据时,会出现如下错误:
EXP-00079: 表 "PURCHASEORDER" 中的数据是被保护的。常规路径只能导出部分表。
. . 正在导出表                   PURCHASEORDER导出了         132 行
EXP-00079:
用户在没有对DBMS_RLS(存取控制包)的执行权限时,进行了对需要存取控制的表的导出。因为表的所有者也受存取控制权限的限制,所以即使是表的所有者也不能导出整个表的所有行,而只能导出他所能看到的行。另外,为保证表的一致性,导出表的用户必须拥有足够的权限,以保证在导入时重建表及其安全策略。因此,强烈建议由数据库管理员来处理导出表的操作。赋予表的所有者以执行权限将有利于这个安全检查,当然这会引起其他安全冲突.....
一 解决方法
1 以dba的身份导出
C:\Users\aaaa>exp '/ as sysdba' wner=oe file=oe.dmp log=oe.log
连接到: Oracle Database 11g Enterprise Edition Release 11.1.0.6.0 - Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
已导出 ZHS16GBK 字符集和 AL16UTF16 NCHAR 字符集
即将导出指定的用户...
. 正在导出 pre-schema 过程对象和操作
. 正在导出用户 OE 的外部函数库名
. 导出 PUBLIC 类型同义词
. 正在导出专用类型同义词
. 正在导出用户 OE 的对象类型定义
即将导出 OE 的对象...
. 正在导出数据库链接
. 正在导出序号
. 正在导出簇定义
. 即将导出 OE 的表通过常规路径...
. . 正在导出表                  CATEGORIES_TAB导出了          22 行
. . 正在导出表      PRODUCT_REF_LIST_NESTEDTAB导出了         288 行
. . 正在导出表  SUBCATEGORY_REF_LIST_NESTEDTAB导出了          21 行
. . 正在导出表                       CUSTOMERS导出了         319 行
. . 正在导出表                     INVENTORIES导出了        1112 行
. . 正在导出表                          ORDERS导出了         105 行
. . 正在导出表                     ORDER_ITEMS导出了         665 行
. . 正在导出表            PRODUCT_DESCRIPTIONS导出了        8640 行
. . 正在导出表             PRODUCT_INFORMATION导出了         288 行
. . 正在导出表                      PROMOTIONS导出了           2 行
. . 正在导出表                   PURCHASEORDER导出了         132 行
. . 正在导出表                      WAREHOUSES导出了           9 行
.......
. 正在导出维
. 正在导出 post-schema 过程对象和操作
. 正在导出统计信息
成功终止导出, 没有出现警告。

================================================
C:\Users\aaaa>exp system/yang wner=oe file=oe2.dmp log=oe2.log
已导出 ZHS16GBK 字符集和 AL16UTF16 NCHAR 字符集
即将导出指定的用户...
. 正在导出 pre-schema 过程对象和操作
. 正在导出用户 OE 的外部函数库名
. 导出 PUBLIC 类型同义词
. 正在导出专用类型同义词
. 正在导出用户 OE 的对象类型定义
即将导出 OE 的对象...
. 正在导出数据库链接
. 正在导出序号
. 正在导出簇定义
. 即将导出 OE 的表通过常规路径...
. . 正在导出表                  CATEGORIES_TAB导出了          22 行
. . 正在导出表      PRODUCT_REF_LIST_NESTEDTAB导出了         288 行
. . 正在导出表  SUBCATEGORY_REF_LIST_NESTEDTAB导出了          21 行
. . 正在导出表                       CUSTOMERS导出了         319 行
. . 正在导出表                     INVENTORIES导出了        1112 行
. . 正在导出表                          ORDERS导出了         105 行
. . 正在导出表                     ORDER_ITEMS导出了         665 行
. . 正在导出表            PRODUCT_DESCRIPTIONS导出了        8640 行
. . 正在导出表             PRODUCT_INFORMATION导出了         288 行
. . 正在导出表                      PROMOTIONS导出了           2 行
EXP-00079: 表 "PURCHASEORDER" 中的数据是被保护的。常规路径只能导出部分表。
. . 正在导出表                   PURCHASEORDER导出了         132 行
. . 正在导出表                      WAREHOUSES导出了           9 行
. 正在导出同义词
........
. 正在导出统计信息
导出成功终止, 但出现警告。
================================================
2 使用system用户,使用direct=y 参数 导出数据。但是oe用户使用direct=y参数导出时依然报错!
C:\Users\aaaa>exp system/yang wner=oe file=oe3.dmp log=oe3.log direct=y
With the Partitioning, OLAP, Data Mining and Real Application Testing options
已导出 ZHS16GBK 字符集和 AL16UTF16 NCHAR 字符集
即将导出指定的用户...
. 正在导出 pre-schema 过程对象和操作
. 正在导出用户 OE 的外部函数库名
. 导出 PUBLIC 类型同义词
. 正在导出专用类型同义词
. 正在导出用户 OE 的对象类型定义
即将导出 OE 的对象...
. 正在导出数据库链接
. 正在导出序号
. 正在导出簇定义
. 即将导出 OE 的表通过直接路径...
表 CATEGORIES_TAB 将以常规路径导出。
. . 正在导出表                  CATEGORIES_TAB导出了          22 行
. . 正在导出表      PRODUCT_REF_LIST_NESTEDTAB导出了         288 行
. . 正在导出表  SUBCATEGORY_REF_LIST_NESTEDTAB导出了          21 行
表 CUSTOMERS 将以常规路径导出。
. . 正在导出表                       CUSTOMERS导出了         319 行
. . 正在导出表                     INVENTORIES导出了        1112 行
. . 正在导出表                          ORDERS导出了         105 行
. . 正在导出表                     ORDER_ITEMS导出了         665 行
. . 正在导出表            PRODUCT_DESCRIPTIONS导出了        8640 行
. . 正在导出表             PRODUCT_INFORMATION导出了         288 行
. . 正在导出表                      PROMOTIONS导出了           2 行
表 PURCHASEORDER 将以常规路径导出。
. . 正在导出表                   PURCHASEORDER导出了         132 行
表 WAREHOUSES 将以常规路径导出。
. . 正在导出表                      WAREHOUSES导出了           9 行
. 正在导出同义词
.........
. 正在导出维
. 正在导出 post-schema 过程对象和操作
. 正在导出统计信息
成功终止导出, 没有出现警告。

C:\Users\aaaa>exp oe/yang wner=oe file=oe4.dmp  log=oe4.log direct=Y
已导出 ZHS16GBK 字符集和 AL16UTF16 NCHAR 字符集
. 正在导出 pre-schema 过程对象和操作
. 正在导出用户 OE 的外部函数库名
. 导出 PUBLIC 类型同义词
. 正在导出专用类型同义词
. 正在导出用户 OE 的对象类型定义
即将导出 OE 的对象...
. 正在导出数据库链接
. 正在导出序号
. 正在导出簇定义
. 即将导出 OE 的表通过直接路径...
表 CATEGORIES_TAB 将以常规路径导出。
. . 正在导出表                  CATEGORIES_TAB导出了          22 行
. . 正在导出表      PRODUCT_REF_LIST_NESTEDTAB导出了         288 行
. . 正在导出表  SUBCATEGORY_REF_LIST_NESTEDTAB导出了          21 行
表 CUSTOMERS 将以常规路径导出。
. . 正在导出表                       CUSTOMERS导出了         319 行
. . 正在导出表                     INVENTORIES导出了        1112 行
. . 正在导出表                          ORDERS导出了         105 行
. . 正在导出表                     ORDER_ITEMS导出了         665 行
. . 正在导出表            PRODUCT_DESCRIPTIONS导出了        8640 行
. . 正在导出表             PRODUCT_INFORMATION导出了         288 行
. . 正在导出表                      PROMOTIONS导出了           2 行
表 PURCHASEORDER 将以常规路径导出。
EXP-00080: 表 "PURCHASEORDER" 中的数据是被保护的。请使用常规模式。
EXP-00079: 表 "PURCHASEORDER" 中的数据是被保护的。常规路径只能导出部分表。
. . 正在导出表                   PURCHASEORDER导出了         132 行
表 WAREHOUSES 将以常规路径导出。
. . 正在导出表                      WAREHOUSES导出了           9 行
. 正在导出同义词
........
. 正在导出刷新组和子组
. 正在导出维
. 正在导出 post-schema 过程对象和操作
. 正在导出统计信息
导出成功终止, 但出现警告。
================================================
3 赋予用户exempt access policy 再次导出。当oe 用户自己导出数据是依然报错!
C:\Users\aaaa>exp oe/yang wner=oe file=oe3.dmp  log=oe3.log
Export: Release 11.1.0.6.0 - Production on 星期日 2月 20 21:08:14 2011
已导出 ZHS16GBK 字符集和 AL16UTF16 NCHAR 字符集
. 正在导出 pre-schema 过程对象和操作
. 正在导出用户 OE 的外部函数库名
. 导出 PUBLIC 类型同义词
. 正在导出专用类型同义词
. 正在导出用户 OE 的对象类型定义
即将导出 OE 的对象...
. 正在导出数据库链接
. 正在导出序号
. 正在导出簇定义
. 即将导出 OE 的表通过常规路径...
. . 正在导出表                  CATEGORIES_TAB导出了          22 行
. . 正在导出表      PRODUCT_REF_LIST_NESTEDTAB导出了         288 行
. . 正在导出表  SUBCATEGORY_REF_LIST_NESTEDTAB导出了          21 行
. . 正在导出表                       CUSTOMERS导出了         319 行
. . 正在导出表                     INVENTORIES导出了        1112 行
. . 正在导出表                          ORDERS导出了         105 行
. . 正在导出表                     ORDER_ITEMS导出了         665 行
. . 正在导出表            PRODUCT_DESCRIPTIONS导出了        8640 行
. . 正在导出表             PRODUCT_INFORMATION导出了         288 行
. . 正在导出表                      PROMOTIONS导出了           2 行
EXP-00079: 表 "PURCHASEORDER" 中的数据是被保护的。常规路径只能导出部分表。
. . 正在导出表                   PURCHASEORDER导出了         132 行
. . 正在导出表                      WAREHOUSES导出了           9 行
. 正在导出同义词
.......
. 正在导出维
. 正在导出 post-schema 过程对象和操作
. 正在导出统计信息
导出成功终止, 但出现警告。
================================================
sys@ORACL> grant exempt access policy to oe;
================================================
C:\Users\aaaa>exp oe/yang wner=oe file=oe3.dmp  log=oe3.log
已导出 ZHS16GBK 字符集和 AL16UTF16 NCHAR 字符集
. 正在导出 pre-schema 过程对象和操作
. 正在导出用户 OE 的外部函数库名
. 导出 PUBLIC 类型同义词
. 正在导出专用类型同义词
. 正在导出用户 OE 的对象类型定义
即将导出 OE 的对象...
. 正在导出数据库链接
. 正在导出序号
. 正在导出簇定义
. 即将导出 OE 的表通过常规路径...
. . 正在导出表                  CATEGORIES_TAB导出了          22 行
. . 正在导出表      PRODUCT_REF_LIST_NESTEDTAB导出了         288 行
. . 正在导出表  SUBCATEGORY_REF_LIST_NESTEDTAB导出了          21 行
. . 正在导出表                       CUSTOMERS导出了         319 行
. . 正在导出表                     INVENTORIES导出了        1112 行
. . 正在导出表                          ORDERS导出了         105 行
. . 正在导出表                     ORDER_ITEMS导出了         665 行
. . 正在导出表            PRODUCT_DESCRIPTIONS导出了        8640 行
. . 正在导出表             PRODUCT_INFORMATION导出了         288 行
. . 正在导出表                      PROMOTIONS导出了           2 行
. . 正在导出表                   PURCHASEORDER导出了         132 行
. . 正在导出表                      WAREHOUSES导出了           9 行
. 正在导出同义词
.........
. 正在导出维
. 正在导出 post-schema 过程对象和操作
. 正在导出统计信息
成功终止导出, 没有出现警告。
====================================
二 如何确定导出的数据是否完整
以dba身份执行如下查询并对比导出日志中的行数,是否相等。
sys@ORACL> select count(*) from oe.PURCHASEORDER;
  COUNT(*)
----------
       132
查询某些表是否启动了管理精细审计
sys@ORACL> SELECT enable,sel,object_owner||'.'||object_name "OBJECT_OWNER.NAME"
  2  FROM dba_policies WHERE object_name='PURCHASEORDER';

ENA SEL OBJECT_OWNER.NAME
--- --- -------------------------------------------------------------
YES NO  OE.PURCHASEORDER
YES NO  OE.PURCHASEORDER
YES YES OE.PURCHASEORDER

sys@ORACL> desc dba_policies 

时间: 2024-10-26 17:59:22

【导入导出】EXP-00079的相关文章

oracle导入导出数据常见报错处理整理

报错1:ORA-01756: quoted string not properly terminated 字符集编码不一致造成的中文内容无法插入 查询当前数据库的字符编码设置: SQL> select * from v$nls_parameters T WHERE t.PARAMETER = 'NLS_LANGUAGE' or t.PARAMETER = 'NLS_CHARACTERSET'; 或者 SQL> select userenv('language') from dual; 查询客户

Oracle中逻辑导出Exp/导入Imp的详细介绍以及参数介绍

导入/导出是ORACLE幸存的最古老的两个命令行工具,其实我从来不认为Exp/Imp是一种好的备份方式,正确的说法是Exp/Imp只能是一个好的转储工具,特别是在小型数据库的转储,表空间的迁移,表的抽取,检测逻辑和物理冲突等中有不小的功劳.当然,我们也可以把它作为小型数据库的物理备份后的一个逻辑辅助备份,也是不错的建议.对于越来越大的数据库,特别是TB级数据库和越来越多数据仓库的出现,EXP/IMP越来越力不从心了,这个时候,数据库的备份都转向了RMAN和第三方工具.下面说明一下EXP/IMP的

Oracle数据导入导出imp/exp(转)

      在oracle安装目录下有EXP.EXE与IMP.EXE这2个文件,他们分别被用来执行数据库的导入导出.所以Oracle数据导入导出imp/exp就相当与oracle数据还原与备份. 一.Oracle数据导出exp  1.Exp参数详解(红色字体代表比较重要的参数): (1) USERID 运行导出命令的帐号的用户名/口令 (2) BUFFEER 用来取数据行的缓冲区的大小 (3) FILE 导出转储文件的名字 (4) COMPRESS 导出是否应该压缩有碎片的段成一个范围,这将会影

Oracle exp/imp命令快速导入导出数据

用exp命令导出表结构,不导出表数据.只需在命令行里加一个参数rows=n即可.表示不导出表数据. exp username/pwd@sid file=d:databak.dmp owner=(user)rows=n ******************************************************************************************************************** oracle exp/imp命令详解 E:>ex

Oracle数据导入导出imp/exp sp2-0734:未知的命令开头imp

sp2-0734:未知的命令开头'imp 忽略了剩余行默认分类 应该是在cmd的dos命令提示符下执行,而不是在sqlplus里面......但是格式一定要类似于: imp PERSONNEL_MANAGE/MWQ@DBSQL full=y  file=C:personnel_manage.dmpignore=y 谨以此纪念我的粗心.....我错了.   imp 命令是在dos提示符下执行的. 直接cmd后执行而不是在sql下执行的 数据导出: 1 将数据库TEST完全导出,用户名system

exp/imp导入导出版本问题和ORA-6550报错

前几天有位同事问到exp/imp是否涉及到版本问题,我认为,只要是软件,都会涉及到高低版本的兼容性问题,Oracle也是软件,自然也是这样. 简单的实验: exp工具版本:10g 导出的source数据库版本:9i bash-4.1$ exp x/x@x tables=T file=/home/x/t.dmpExport: Release 10.2.0.4.0 - Production on Wed Dec 11 15:17:05 2013 Copyright (c) 1982, 2007, O

Oracle导入导出数据库的语法

    导读:oracle中除了在Oracle编辑器中用图形化的方式导入导出文理文件的数据方式外,还可以采用命令行的方式导入导出数据库,其语法实示例如下:    imp [username[/password[@service]]]    步骤:1.首先在进入 dos, 然后切换到 oracle 数据库物理文件所在的目录即(dmp文件所在的目录).接下来输入下述语句!    imp username/password@service file=psmis.dmp fromuser=psmis t

Oracle导入导出提示EXP-0006:出现内部不一致的错误解决办法

  exp.imp是ORACLE幸存的最古老的两个操作系统命令行工具,导入(IMP)/导出(EXP),昨天在Oracle用exp.imp导入导出报EXP-0006:出现内部不一致的错误. 以前用exp.imp导库命令成功的实现了Oracle数据库的导出.导入,对此,昨天再对服务器新安装的Oracle数据库用exp.imp导库,一直报"EXP-0006:出现内部不一致的错误",于是在网上百度,尝试其他导库方式,发现采用expdp.impdp数据泵同样可以完成数据库的导出.导入,而且数据泵

Oracle启动、建立表空间、用户、授权、数据库导入导出使用教程

  数据库最基本的操作就是数据的导入导出及建立表空间.用户.授权了,今天小编也为各位介绍一下关于Oracle启动.建立表空间.用户.授权.数据库导入导出的命令吧. **启动**1.启动数据库实例,分为两步:第一步,启动监听;第二步,启动数据库实例. 1.1进入到sqlplus启动实例{{{ [oracle@redhat ~]$ su - oracle --"切换到oracle用户" [oracle@redhat ~]$ lsnrctl start --"打开监听"

ORACLE自启设置与导入导出的方法

  linux下系统开机oracle自启动 以root身份登录: $su - root 1.linux下oracle自带的dbstart和dbshut没反应: 修改Oracle系统配置文档/etc/oratab文档: #vi /etc/oratab /etc/oratab 格式为: SID:ORACLE_HOME:AUTO 把AUTO域配置为Y(大写),我的为: oradb:/opt/u01/app/oracle/product/9.2.0.4:Y 只有这样,oracle 自带的dbstart和