ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 【EXPDP】使用11g的数据泵实现对逻辑备份数据进行加密

【EXPDP】使用11g的数据泵实现对逻辑备份数据进行加密

Linux操作系统 作者:oraclewangfu 时间:2015-08-20 16:24:32 0 删除 编辑
  Oracle 11g版本中的数据泵对逻辑备份过程中的加密功能进行了增强。这里以对备份数据本身进行加密展示之。

1.对比10g和11g版本中的数据泵加密功能描述
1)10g中的expdp加密选项描述
C:\Users\secooler>expdp -help

Export: Release 10.2.0.3.0 - Production on 星期日, 30 10月, 2011 21:33:29

Copyright (c) 2003, 2005, Oracle.  All rights reserved.

……省略其他输出内容……
ENCRYPTION_PASSWORD   用于创建加密列数据的口令关键字。
……省略其他输出内容……

2)11g中的expdp加密选项描述
C:\Users\secooler>expdp -help

Export: Release 11.1.0.6.0 - 64bit Production on 星期日, 30 10月, 2011 21:37:02

Copyright (c) 2003, 2007, Oracle.  All rights reserved.

……省略其他输出内容……
ENCRYPTION            加密部分或全部转储文件, 其中有效关键字
                      值为: ALL, DATA_ONLY, METADATA_ONLY,
                      ENCRYPTED_COLUMNS_ONLY 或 NONE。
ENCRYPTION_ALGORITHM  指定应如何完成加密, 其中有效
                      关键字值为: (AES128), AES192 和 AES256。
ENCRYPTION_MODE       生成加密密钥的方法, 其中有效关键字
                      值为: DUAL, PASSWORD 和 (TRANSPARENT)。
ENCRYPTION_PASSWORD   用于创建加密列数据的口令关键字。
……省略其他输出内容……

可见,11g通过ENCRYPTION选项增强了逻辑备份的加密功能,共有5种供选择的选项。

2.使用ENCRYPTION选项的DATA_ONLY对逻辑备份数据进行加密
1)初始化备份环境
创建secooler用户,并在其下创建了T表、初始化两条数据。
C:\Users\secooler>sqlplus / as sysdba

SQL*Plus: Release 11.1.0.6.0 - Production on 星期日 10月 30 22:13:14 2011

Copyright (c) 1982, 2007, Oracle.  All rights reserved.


连接到:
Oracle Database 11g Enterprise Edition Release 11.1.0.6.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options

SQL> create user secooler identified by secooler;

用户已创建。

SQL> grant dba to secooler;

授权成功。

SQL> conn secooler/secooler
已连接。
SQL> create table t (x int);

表已创建。

SQL> insert into t values (1);

已创建 1 行。

SQL> insert into t values (2);

已创建 1 行。

SQL> commit;

提交完成。

SQL> select * from t;

         X
----------
         1
         2

2)在secooler用户下创建directory用于存放备份介质
SQL> create directory dir as 'C:\Users\secooler';

目录已创建。

3)加密逻辑备份secooler用户数据
C:\Users\secooler>expdp secooler/secooler directory=dir dumpfile=secooler.dmp logfile=secooler.log encryption=data_only encryption_password=my_passwd

Export: Release 11.1.0.6.0 - 64bit Production on 星期日, 30 10月, 2011 22:21:21

Copyright (c) 2003, 2007, Oracle.  All rights reserved.

连接到: Oracle Database 11g Enterprise Edition Release 11.1.0.6.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
启动 "SECOOLER"."SYS_EXPORT_SCHEMA_01":  secooler/******** directory=dir dumpfile=secooler.dmp logfile=secooler.log encryption=data
_only encryption_password=********
正在使用 BLOCKS 方法进行估计...
处理对象类型 SCHEMA_EXPORT/TABLE/TABLE_DATA
使用 BLOCKS 方法的总估计: 64 KB
处理对象类型 SCHEMA_EXPORT/USER
处理对象类型 SCHEMA_EXPORT/SYSTEM_GRANT
处理对象类型 SCHEMA_EXPORT/ROLE_GRANT
处理对象类型 SCHEMA_EXPORT/DEFAULT_ROLE
处理对象类型 SCHEMA_EXPORT/PRE_SCHEMA/PROCACT_SCHEMA
处理对象类型 SCHEMA_EXPORT/TABLE/TABLE
处理对象类型 SCHEMA_EXPORT/TABLE/INDEX/INDEX
处理对象类型 SCHEMA_EXPORT/TABLE/CONSTRAINT/CONSTRAINT
处理对象类型 SCHEMA_EXPORT/TABLE/INDEX/STATISTICS/INDEX_STATISTICS
处理对象类型 SCHEMA_EXPORT/TABLE/COMMENT
处理对象类型 SCHEMA_EXPORT/POST_SCHEMA/PROCACT_SCHEMA
. . 导出了 "SECOOLER"."T"                              5.070 KB       2 行
已成功加载/卸载了主表 "SECOOLER"."SYS_EXPORT_SCHEMA_01"
******************************************************************************
SECOOLER.SYS_EXPORT_SCHEMA_01 的转储文件集为:
  C:\USERS\SECOOLER\SECOOLER.DMP
作业 "SECOOLER"."SYS_EXPORT_SCHEMA_01" 已于 22:22:16 成功完成


C:\Users\secooler>dir secooler*
 Volume in drive C has no label.
 Volume Serial Number is 10B2-0C1B

 Directory of C:\Users\secooler

2011/10/30  22:22           180,224 SECOOLER.DMP
2011/10/30  22:22             1,469 secooler.log
               2 File(s)        181,693 bytes
               0 Dir(s)  64,910,381,056 bytes free

加密备份生成成功。

3.使用加密的备份介质恢复数据
1)清理secooler用户下的数据
SQL> conn secooler/secooler
已连接。
SQL> drop table t purge;

表已删除。

2)尝试不给出密码的情况下进行数据导入
C:\Users\secooler>impdp secooler/secooler directory=dir dumpfile=secooler.dmp logfile=secooler_impdp.log

Import: Release 11.1.0.6.0 - 64bit Production on 星期日, 30 10月, 2011 22:26:21

Copyright (c) 2003, 2007, Oracle.  All rights reserved.

连接到: Oracle Database 11g Enterprise Edition Release 11.1.0.6.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
ORA-39002: 操作无效
ORA-39174: 必须提供加密口令。


报错提示信息很显然,我们此时使用的是加密的备份介质,必须提供加密时的密码。

3)提供密码完成数据的导入
C:\Users\secooler>impdp secooler/secooler directory=dir dumpfile=secooler.dmp logfile=secooler_impdp.log encryption_password=my_passwd

Import: Release 11.1.0.6.0 - 64bit Production on 星期日, 30 10月, 2011 22:27:46

Copyright (c) 2003, 2007, Oracle.  All rights reserved.

连接到: Oracle Database 11g Enterprise Edition Release 11.1.0.6.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
已成功加载/卸载了主表 "SECOOLER"."SYS_IMPORT_FULL_01"
启动 "SECOOLER"."SYS_IMPORT_FULL_01":  secooler/******** directory=dir dumpfile=secooler.dmp logfile=secooler_impdp.log encryption_
password=********
处理对象类型 SCHEMA_EXPORT/USER
ORA-31684: 对象类型 USER:"SECOOLER" 已存在
处理对象类型 SCHEMA_EXPORT/SYSTEM_GRANT
处理对象类型 SCHEMA_EXPORT/ROLE_GRANT
处理对象类型 SCHEMA_EXPORT/DEFAULT_ROLE
处理对象类型 SCHEMA_EXPORT/PRE_SCHEMA/PROCACT_SCHEMA
处理对象类型 SCHEMA_EXPORT/TABLE/TABLE
处理对象类型 SCHEMA_EXPORT/TABLE/TABLE_DATA
. . 导入了 "SECOOLER"."T"                              5.070 KB       2 行
处理对象类型 SCHEMA_EXPORT/POST_SCHEMA/PROCACT_SCHEMA
作业 "SECOOLER"."SYS_IMPORT_FULL_01" 已经完成, 但是有 1 个错误 (于 22:27:53 完成)


数据导入成功!

4.小结
  使用数据泵的加密技术,可以有效地降低由于备份介质丢失后被轻易恢复的风险。建议在使用数据泵作为逻辑备份手段的朋友们选用此项功能。

Good luck.

secooler
11.10.30

-- The End --

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

请登录后发表评论 登录
全部评论

注册时间:2015-08-20

  • 博文量
    15
  • 访问量
    6873