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.小结
使用数据泵的加密技术,可以有效地降低由于备份介质丢失后被轻易恢复的风险。建议在使用数据泵作为逻辑备份手段的朋友们选用此项功能。
原文地址:http://blog.itpub.net/519536/viewspace-709931/