【EXPDP】使用11g的資料泵實現對邏輯備份資料進行加密

secooler發表於2011-10-30
  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/519536/viewspace-709931/,如需轉載,請註明出處,否則將追究法律責任。

相關文章