码迷,mamicode.com
首页 > 数据库 > 详细

ORACLE 透明加密(TDE)

时间:2015-06-03 09:37:44      阅读:201      评论:0      收藏:0      [点我收藏+]

标签:

/*

author:CH

date:2015

theme:oracle TDE test

*/

一透明加密(TDE, Transparent Data Encryption)

参考:

http://www.oracle.com/technetwork/cn/tutorials/tde-096772-zhs.html#t3

http://www.eygle.com/archives/2011/09/oracle_transparent_data_encryption.html

http://blog.itpub.net/17203031/viewspace-681825/

 

 

作用:防止丢失介质后会被别人读取到数据。在wallet打开的情况下,使用sql语句查询实际上是没有限制的。

二、操作

操作开始,测试于192.168.8.126(ORACLE_SID=db),使用oracle用户登录电脑。

# su – oracle

1. 修改 sqlnet.ora,确认加密文件放在哪里

# cd /u01/app/oracle/product/11.2.0/dbhome_1/network/admin/

# vim sqlnet.ora

 

/*

ENCRYPTION_WALLET_LOCATION=

(SOURCE=(METHOD=FILE)(METHOD_DATA= (DIRECTORY=/u01/app/oracle/product/11.2.0/dbhome_1)))   --红色的是路径

*/

2. 打开钱夹,创建密密钥

# sqlplus

(1)必须以dba身份登录

 

(2)打开wallet修改密钥,有两种选择,一种“万能”,一种“钱夹”(wallet)

--万能密钥

SQL> alter system set key identified by "test123456";

 

--钱夹密钥(当前未使用)

SQL> alter system set wallet open identified by "test123456";

 

打开wallet,设置好密钥之后,完成基础设置。

 

--关闭

SQL> alter system set encryption wallet close identified by "test123456";

 

 

 

加密文件,路径

3. 要确认启用了透明数据加密,一般而言都是开了的

若是没开,可以到em去开启

4.对表中的列进行加密

--对value1进行加密(在126上面有这个表,有几条数据)

create table test2

(

  id int ENCRYPT NO SALT,

  value1 number ENCRYPT ,

  value2 int

);

create index idx1_test2 on test2(ID);

--若是关闭了wallet,查询会报错

SQL> alter system set encryption wallet close identified by "test123456";

 

select value1 from test2;

select * from test2;

ORA-28365: Wallet 未打开

 

5.可以对表空间进行加密

 

6.查看透明加密情况:

l         dba_encrypted_columns:记录所有的加密字段;

l         all_encrypted_columns:记录当前用户所能访问到的所有加密字段;

l         user_encrypted_columns:记录当前用户自身Schema所有的加密字段;

7.取消加密

可以在em中管理

 

8.Salt参数

(1)在加密列时,存在两个选项:Salt和No Salt。
Salt在加密前对数据增加随即字符串,增加破解的难度,使得同样的字符串加密结果不同;而对于NO Salt,则同样字符串可以获得同样的加密输出,其安全性相对略低。
(2)在加密列上,如果使用Salt方式,则不能创建索引,Salt加密和索引两种属性互斥,不能同时设置。

(3)默认Salt.

9.TDE的缺点

(1)使用TDE的情况下,数据库文件中保存的数据值是进行过加密的。加密过的列值一般要长于原始数据值,所以使用TDE之后数据表要比不使用大。

(2)TDE的加解密操作完全是建立在自动加解密基础上。插入数据、修改数据的时候会自动将数据加密后存放在数据表中;选择数据时会自动的将加密过的列值进行解密。这种操作无形中是增加了数据操作的成本

(3)TDE是不负责数据传输阶段加密的。数据从DBMS传出后,还是以明文方式传输到应用。

ORACLE 透明加密(TDE)

标签:

原文地址:http://www.cnblogs.com/zihuancc/p/4548257.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!