Oracle TDE(透明資料加密)

hooca發表於2015-01-06
DB:11.2.0.4
TDE特性從10g開始提供。10g只能使用列加密,11g開始提供表空間加密。
如果使用列加密,那麼Oracle的DataGuard,流,物化檢視不可用,所涉及列的PK/FK也不可用。而表空間加密則不會有這些問題。

首先需要建立Wallet金鑰:
a. 建立預設Wallet檔案目錄

點選(此處)摺疊或開啟

  1. mkdir $ORACLE_BASE/admin/<SID>/wallet
b. 建立金鑰:

點選(此處)摺疊或開啟

  1. ALTER SYSTEM SET ENCRYPTION KEY IDENTIFIED BY "zaq12wsxCDE#$RFV";
c. 開啟或關閉Wallet

點選(此處)摺疊或開啟

  1. ALTER SYSTEM SET ENCRYPTION WALLET OPEN IDENTIFIED BY "zaq12wsxCDE#$RFV";
  2. ALTER SYSTEM SET ENCRYPTION WALLET CLOSE IDENTIFIED BY "zaq12wsxCDE#$RFV";
d. 檢視wallet狀態

點選(此處)摺疊或開啟

  1. SELECT WRL_TYPE, WRL_PARAMETER, STATUS FROM GV$ENCRYPTION_WALLET;

WRL_TYPE   WRL_PARAMETER                                      STATUS
---------- -------------------------------------------------- ----------
file       /u01/app/oracle/admin/vlt/wallet                   CLOSED


建立加密表空間:

點選(此處)摺疊或開啟

  1. CREATE TABLESPACE ts_encrypted
  2. DATAFILE '' size 400K
  3. AUTOEXTEND ON
  4. ENCRYPTION USING 'AES256'
  5. DEFAULT STORAGE(ENCRYPT)
  6. /
檢視建立結果

點選(此處)摺疊或開啟

  1. SELECT TS.name, ET.encryptedts, ET.encryptionalg
  2. FROM v$tablespace TS, v$encrypted_tablespaces ET
  3. WHERE TS.ts# = ET.ts#;

NAME                 ENCRYP ENCRYPTIONALG
-------------------- ------ --------------
TS_ENCRYPTED         YES    AES256

驗證TDE結果:
當wallet處於Close狀態時,查詢加密表空間中的表:

點選(此處)摺疊或開啟

  1. select * from customers where rownum<11;
select * from customers where rownum<11
*
ERROR at line 1:
ORA-28365: wallet is not open

必須Open Wallet,才可以正常查詢。

同時,如果在OS中使用strings命令檢視資料檔案,加密表空間將看到亂碼,而沒有加密過的資料檔案可以看到明文。



來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/22621861/viewspace-1392148/,如需轉載,請註明出處,否則將追究法律責任。

相關文章