标签:
/*
author:CH
date:2015
theme:oracle TDE test
*/
参考:
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
# 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))) --红色的是路径
*/
# 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";
加密文件,路径
若是没开,可以到em去开启
--对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 未打开
l dba_encrypted_columns:记录所有的加密字段;
l all_encrypted_columns:记录当前用户所能访问到的所有加密字段;
l user_encrypted_columns:记录当前用户自身Schema所有的加密字段;
(1)在加密列时,存在两个选项:Salt和No Salt。
Salt在加密前对数据增加随即字符串,增加破解的难度,使得同样的字符串加密结果不同;而对于NO Salt,则同样字符串可以获得同样的加密输出,其安全性相对略低。
(2)在加密列上,如果使用Salt方式,则不能创建索引,Salt加密和索引两种属性互斥,不能同时设置。
(3)默认Salt.
(1)使用TDE的情况下,数据库文件中保存的数据值是进行过加密的。加密过的列值一般要长于原始数据值,所以使用TDE之后数据表要比不使用大。
(2)TDE的加解密操作完全是建立在自动加解密基础上。插入数据、修改数据的时候会自动将数据加密后存放在数据表中;选择数据时会自动的将加密过的列值进行解密。这种操作无形中是增加了数据操作的成本
(3)TDE是不负责数据传输阶段加密的。数据从DBMS传出后,还是以明文方式传输到应用。
标签:
原文地址:http://www.cnblogs.com/zihuancc/p/4548257.html