天天看点

数据库安全之TDE列加密

<a href="http://blog.csdn.net/cymm_liu/article/details/41810115">透明数据加密(Transparent Data Encryption)</a>

数据库安全之TDE列加密

TDE - 基于列的加密

由于有了Oracle的TDE-基于列的加密,你所要做的只是定义需要加密的列,Oracle将为包含加密列的表创建一个私密的安全加密密钥,然后采用你指定的加密算法加密指定列的明文数据。

 这个加密,不需要我们写特殊的代码,只要我们制定“需要加密的列”,当用户插入下一行数据的时候,数据库透明的加密数据然后存储加密后的数据。当用户读取数据时,数据库给我们自动解密,也不需要应用程序去修改任何代码。

NAME TYPE VALUE

------------------------------------ ----------- ------------------------------

compatible string 11.2.0

2. 设定wallet的位置(在sqlnet.ora文件中写入如下内容,需要重启数据库才能生效):   指定 ENCRYPTION_WALLET_LOCATION 参数

[oracle@11g admin]$ cat sqlnet.ora

#SQLNET.AUTHENTICATION_SERVICES= (NTS)

NAMES.DIRECTORY_PATH= (TNSNAMES)

ENCRYPTION_WALLET_LOCATION = 

 (SOURCE= 

(METHOD=file) 

(METHOD_DATA= 

(DIRECTORY=/home/oracle/wallet)))

3)在指定(DIRECTORY路径下建好wallet目录。 不然报:ORA-28368: cannot auto-create wallet

[oracle@11g ~]$ mkdir wallet

[oracle@11g wallet]$ pwd

/home/oracle/wallet

4)在wallet里面创建key

SQL&gt; alter system set encryption key authenticated by "andy";

System altered.

SQL&gt; create table andy.andy_tde( 

id number(10) primary key, 

col_tde varchar2(50) encrypt using 'AES192' 

); 2 3 4

Table created.

说明:TDE支持的加密算法:

3DES168 AES128  AES192(默认)  AES256

SQL&gt; set linesize 300

SQL&gt; select * from dba_encrypted_columns;

OWNER TABLE_NAME COLUMN_NAME ENCRYPTION_ALG

------------------------------ ------------------------------ ------------------------------ ------------------

ANDY ANDY_TDE COL_TDE AES 192 bits key

SQL&gt; insert into andy_tde values (1,'tde');

1 row created.

SQL&gt; commit;

Commit complete.

SQL&gt; select * from andy_tde;

ID COL_TDE

---------- ---------------------------------

1 tde

6)如果关闭wallet,无法访问加密的数据:

SQL&gt; alter system set wallet close identified by "andy";

select * from andy_tde

*

ERROR at line 1:

ORA-28365: wallet is not open

7)重新打开wallet,才可以访问加密的数据

SQL&gt; alter system set wallet open identified by "andy";

---------- ----------------------------

本文转自 张冲andy 博客园博客,原文链接:http://www.cnblogs.com/andy6/p/6265870.html   ,如需转载请自行联系原作者