ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 【导入导出】EXP-00079

【导入导出】EXP-00079

原创 Linux操作系统 作者:杨奇龙 时间:2011-02-20 21:51:53 0 删除 编辑
当我们对一个启用管理精细审计的表进行导出数据时,会出现如下错误:
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

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

请登录后发表评论 登录
全部评论
MySQL DBA NoSQL DEVOPS

注册时间:2009-10-07

  • 博文量
    1026
  • 访问量
    7842186