ITPub博客

首页 > 数据库 > Oracle > Oracle TDE(透明数据加密)

Oracle TDE(透明数据加密)

原创 Oracle 作者:hooca 时间:2015-01-06 15:54:15 0 删除 编辑
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/,如需转载,请注明出处,否则将追究法律责任。

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

注册时间:2009-09-29

  • 博文量
    215
  • 访问量
    403296