博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
数据库安全之TDE列加密
阅读量:6409 次
发布时间:2019-06-23

本文共 1961 字,大约阅读时间需要 6 分钟。

 

TDE - 基于列的加密
由于有了Oracle的TDE-基于列的加密,你所要做的只是定义需要加密的列,Oracle将为包含加密列的表创建一个私密的安全加密密钥,然后采用你指定的加密算法加密指定列的明文数据。
 这个加密,不需要我们写特殊的代码,只要我们制定“需要加密的列”,当用户插入下一行数据的时候,数据库透明的加密数据然后存储加密后的数据。当用户读取数据时,数据库给我们自动解密,也不需要应用程序去修改任何代码。
 
1.保证 兼容版本高于10gSQL> show parameter compatible

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> alter system set encryption key authenticated by "andy";

System altered.

5)创建一个表,对其中某列

SQL> 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> set linesize 300

SQL> select * from dba_encrypted_columns;

OWNER TABLE_NAME COLUMN_NAME ENCRYPTION_ALG

------------------------------ ------------------------------ ------------------------------ ------------------
ANDY ANDY_TDE COL_TDE AES 192 bits key

 

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

1 row created.

SQL> commit;

Commit complete.

SQL> select * from andy_tde;

ID COL_TDE

---------- ---------------------------------
1 tde

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

SQL> alter system set wallet close identified by "andy";

System altered.

SQL> select * from andy_tde;

select * from andy_tde
*
ERROR at line 1:
ORA-28365: wallet is not open

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

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

System altered.

SQL> select * from andy_tde;

ID COL_TDE

---------- ----------------------------
1 tde

 

 

 

转载于:https://www.cnblogs.com/andy6/p/6265870.html

你可能感兴趣的文章
Log4php 使用心得
查看>>
十三香_百度百科
查看>>
paip.网页右键复制菜单限制解除解决方案
查看>>
string.Format 格式化时间,货币
查看>>
Kerberos和NTLM - SQL Server
查看>>
记github上搭建独立域名的免费博客的方法过程
查看>>
Web设计之网页布局CSS技巧
查看>>
iOS key value coding kvc在接收json数据与 model封装中的使用
查看>>
Android 滑动效果入门篇(二)—— Gallery
查看>>
Revit二次开发示例:DesignOptions
查看>>
Entity Framework 系统约定配置
查看>>
优秀设计:纹理在网页设计中的20个应用示例
查看>>
C++ 关键字 explicit, export, mutable
查看>>
生成指定范围的一组随机数并求平均值
查看>>
android语音识别方法
查看>>
File Operations in Android NDK(转)
查看>>
如何将kux格式的视频转换成我们常用的MP4格式
查看>>
[sublime系列文章] sublime text 3插件配置说明
查看>>
学习 PixiJS — 碰撞检测
查看>>
Vue 基础篇
查看>>