ORACLE 加密(TDE) 对字段加密测试

                  
              ORACLE TDE(Transparent Data Encryption)
参考http://space.itpub.net/17203031/viewspace-681943
1、查看版本,ORACLE 10G后才有TDE
2、建立主加密目录,修改SQLNET.ORA目录
ENCRYPTION_WALLET_LOCATION=
(SOURCE=(METHOD=FILE)
       (METHOD_DATA=
        (DIRECTORY=/oradata/oracle/product/10.2/ora_wallet)))
3、创建master key文件,并且指定密码
alter system set encryption key identified by gelc123123;
这时会在设置的目录下多一个文件ewallet.p12
4、启动和关闭wallet
SQL> alter system set encryption wallet close;
System altered.
SQL> ALTER SYSTEM SET ENCRYPTION WALLET OPEN IDENTIFIED BY gelc123123;
System altered.
5、字段TDE测试
建立表
SQL>  create table t
  2    ( id number primary key,
  3      name varchar2(10) ENCRYPT);
 
Table created
插入数据
SQL> insert into t
  2  values(1,'test');
访问
SQL> select * from t;
 
        ID NAME
---------- ----------
         1 test
 关闭wallet
 alter system set encryption wallet close;
 再次访问未加密字段
 SQL> select id from t;
 
        ID
----------
         1
访问加密字段
SQL> select name from t;
 
select name from t
 
ORA-28365: wallet is not open
提示wallet没有打开
6、测试数据文件泄露后,尝试打开数据
提取数据
expdp ppzhu/gelc123 dumpfile=DATA_PUMP_DIR:ppzhu.dmp logfile=DATA_PUMP_DIR:log1.log
尝试导入
impdp test123/gelc123 remap_schema=ppzhu:test123 dumpfile=WORK_DIR:ppzhu.dmp logfile=WORK_DIR:log1.log
报错如下:
ORA-39083: Object type TABLE failed to create with error:
ORA-28365: wallet is not open
Failing sql is:
CREATE TABLE "TEST123"."T" ("ID" NUMBER, "NAME" VARCHAR2(10 BYTE) ENCRYPT USING 'AES192' 'SHA-1') PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645 PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT) TABLESPACE "PPZHU"
7、结论
通过ORACLE TDE,我们可以对敏感的数据设置一个wallet来进行加密,如果有居心不良人员通过截取数据包或者偷取备份文件,
试图进行数据恢复或者数据读取的时候,都必须拥有wallet密码,如果没有wallet密码就不能成功的读取数据,从而能够防止
数据泄露。
上一篇:mysql5.7.23版本安装教程


下一篇:Hadoop社区版搭建