创建一个加密表空间并对表内数据进行加密的示例
2013-09-08 18:10
330 查看
基于表空间的加密概念
对整个表空间进行加密,表空间中的所有对象都是加密的,例如 在加密表空间上创建一个表,表的所有字段都是加密状态,适用Oracle11gR2以上版本。表空间加密数据的优点:不会再收到字段加密的限制,例如 字段类型,索引类型,需要设置no salt才可见索引等。
表空间加密数据的缺点:外部大对象不支持,exp/imp逻辑导出导入不支持但可以用expdp/impdp数据泵。
加密表空间与wallet的关系
1.Oracle 表空间的加密与解密完全是基于wallet钱包中的密钥进行的。
2.如果wallet是open状态,那么我们可以使用其中的密钥,进行加密与解密处理。
3.如果wallet是close状态,那么我们就拿不到密钥,此时加密表空间是不可用的,例如 查询 修改 创建 都不允许。
TDE的使用场合
1.保护敏感数据,禁止未授权的访问,只有打开钱包才能查看数据。
2.防止数据丢失,当加密表空间的数据文件被拷贝走了,如果你没有密钥是无法还原数据的。
3.防止数据被截获,当在网络传输时加密后的信息更安全,即使截获了也无法得知内容。
创建一个加密表空间及数据表示例
1.wallet未打开时无法创建加密表空间。
BYS@ bys001>create tablespace encry_test datafile '/u01/app/oracle/oradata/bys001/encry_test.dbf' size 10m encryption using 'aes128' default storage(encrypt);create tablespace encry_test datafile ' /u01/app/oracle/oradata/bys001/encry_test.dbf' size 10m encryption using 'aes128' default storage(encrypt)
*
ERROR at line 1:
ORA-28365: wallet is not open
打开 wallet
BYS@ bys001>alter system set wallet open identified by "testtest";
System altered.
2.创建并验证表空间是否使用加密
BYS@ bys001>create tablespace encry_test datafile '/u01/app/oracle/oradata/bys001/encry_test.dbf' size 10mencryption using 'aes128' default storage(encrypt);Tablespace created.
BYS@ bys001>select tablespace_name,encrypted from dba_tablespaces;
TABLESPACE_NAME ENC
------------------------------ ---
SYSTEM NO
SYSAUX NO
UNDOTBS1 NO
TEMP NO
USERS NO
EXAMPLE NO
CATALOG1 NO
BYS_FLASHBACK NO
TEST1 NO
ENCRY_TEST YES
3.在加密表空间上创建表,表默认继承了表空间的加密属性
BYS@ bys001>create table encry_test2 tablespace encry_test as select * from tab;Table created.
BYS@ bys001>select * from encry_test2;
TNAME TABTYPE CLUSTERID
------------------------------ ------- ----------
ENCRY_TEST TABLE
ENCRY_TEST2 TABLE
FRUIT_LIST TABLE
FRUIT_LIST_AUDIT TABLE
TEST TABLE
TEST3 TABLE
TEST4 TABLE
TEST5 TABLE
TEST6 TABLE
TEST_AUDIT TABLE
4.关闭wallet,新创建的表将不能查询。
BYS@ bys001>alter system set wallet close identified by "testtest";System altered.
BYS@ bys001>select * from encry_test2;
select * from encry_test2
*
ERROR at line 1:
ORA-28365: wallet is not open
相关文章推荐
- Java中使用SSHA对数据进行加密的示例
- HDFS的API调用,创建Maven工程,创建一个非Maven工程,HDFS客户端操作数据代码示例,文件方式操作和流式操作
- 演示一个VPD进行数据访问控制的示例
- Android 一个对sharedpreferences 数据进行加密的开源库
- Android 一个对sharedpreferences 数据进行加密的开源库
- 如何创建一个可以保存13亿数据的数组?兼谈时间和空间之间永无休止的战争
- Android 一个对sharedpreferences 数据进行加密的开源库
- 为创建的一个自定义数据类型进行运算符重载
- 演示一个VPD进行数据访问控制的示例
- 一个简单对 数据进行加密 的Java类
- Android中创建一个使用ListView以及用BaseAdapter进行数据适配的程序
- 演示一个OLS进行数据访问控制的示例
- 演示一个TDE的数据加密示例,并用logminer验证加密效果
- Android使用KeyStore对数据进行加密的示例代码
- Oracle加密表空间进行数据加密的示例
- JQuery创建object 并自定义键、值(获取table中数据,封装成一个对象)
- cron job的方式定时备份Redis的数据文件,并将备份文件copy到安全的磁盘介质中。创建一个定期任务(cron job)
- 一个使用泛型堆栈模块创建的两个容纳不同类型数据的实例
- 【PB】如何创建一个动态的数据窗口对象?
- json解析出来的数据库是字典和数组的组合,创建一个model来接收解析数据