首页 | 互联网 | IT动态 | IT培训 | Cisco | Windows | Linux | Java | .Net | Oracle | 软件测试 | C/C++ | 嵌入式开发 | 存储世界 | 服务器
网络设备 | IDC | 安全 | 求职招聘 | 数字网校 | 网页设计 | 平面设计 | 技术专题 | 电子书下载 | 教学视频 | 源码下载 | 搜索 | 博客 | 论坛
中国IT实验室Oracle频道
中国IT教育
Google
首页 入门基础 安装配置 体系架构 PLSQL 备份恢复 性能调优 开发技术 资讯动态 考试认证 下载 专题 讨论
您现在的位置: 中国IT实验室 >> Oracle >> 产品介绍 >> 正文

Oracle 10G 新特性--透明数据加密技术

    在Oracle 10gR2中,出现最及时的技术应该是透明数据加密技术(Transparent Data Encryption,TDE)。

    TDE用来对数据加密,通常SQL执行的应用程序逻辑不需要进行更改,仍能正常运行。换言之,应用程序可以使用同一语法将数据插入到应用程序表中,并且Oracle数据库在将信息写入磁盘之前将自动对数据进行加密。随后的选择操作将透明地解密数据,因此应用程序将继续正常地运行。这一点很重要,因为当前的应用程序通常期望未加密的应用程序数据。显示加密数据至少会使应用程序用户迷惑不解,甚至还会破坏现有的应用程序。

    设置加密密钥:

    Oracle透明数据加密提供了实施加密所必需的关键管理基础架构。加密的工作原理是将明文数据以及秘密(称作密钥)传递到加密程序中。加密程序使用提供的密钥对明文数据进行加密,然后返回加密数据。以往,创建和维护密钥的任务由应用程序完成。Oracle透明数据加密通过为整个数据库自动生成一个万能密钥解决了此问题。在启动Oracle数据库时,管理员必须使用不同于系统口令或DBA口令的口令打开一个Oracle Wallet对象。然后,管理员对数据库万能密钥进行初始化。万能密钥是自动生成的。

    性能:

    由于索引数据未被加密,因此加密通常会影响现有的应用程序索引。Oracle透明数据加密对与给定应用程序表关联的索引值进行加密。这意味着应用程序中的相等搜索对性能的影响很小,甚至没有任何影响。例如,假设应用程序card_id存在一个索引,并且此应用程序执行以下语句:

    准备用于加密的数据库:

    在本部分内容中,您将更新sqlnet.ora、创建一个加密钱夹(ewallet.p12)、打开此钱夹并为TDE创建万能密钥。执行以下操作:

    1.您需要更新sqlnet.ora文件以包含一个ENCRYPTED_WALLET_LOCATION条目。打开一个终端窗口,然后输入以下命令:

    cd $ORACLE_HOME/network/admin

    gedit sqlnet.ora

    将以下条目添加到文件末尾:

    ENCRYPTION_WALLET_LOCATION=(SOURCE=(METHOD=FILE)(METHOD_DATA=(DIRECTORY=/opt/oracle/admin/test97/wallet/)))

    如果不加这一项的话,则会提示下面错误:

    SQL> alter system set key identified by "hurray"

    2 ;

    alter system set key identified by "hurray"

    *

    ERROR at line 1:

    ORA-28368: cannot auto-create wallet

    /opt/oracle/admin/test97/wallet/目录是用来存放生成的钱夹的。

    可以为加密钱夹选择任何目录,但路径不应指向在数据库安装过程中创建的标准模糊钱夹(cwallet.sso)。

    以上设置是指linux中设置,如果是在windows下,假设oracle安装在G:\oracle中,则只需要在g:\oracle\product\10.2.0\admin\oracle10\x下新建wallet文件夹即可

    2.接下来,您需要打开钱夹并创建万能加密密钥。从终端窗口中,输入以下命令:

    connect / as sysdba
    alter system set key identified by "welcome1";


    此命令的作用为:

 

    l        如果指定的目录中不存在加密钱夹,则将创建加密钱夹(ewallet.p12)、打开此钱夹并创建/重新创建TDE的万能密钥。

    l        如果指定目录中存在加密钱夹,则将打开此钱夹并创建/重新创建TDE的万能密钥。

 

    之后,就可以测试数据了。

 

 

    下面是实验记录:

    首先以dba登录,执行alter system set key identified by "welcome1";

 

    SQL> conn dodd/dodd123

    create table test (id number,credit_card_number varchar2(16) ENCRYPT NO SALT);

 

    SQL> insert into test values(1,'1231243242');

[1] [2] [3] 下一页

【责编:Ken】

中国IT教育

相关产品和培训
文章评论
 友情推荐链接
 认证培训
 专题推荐

 ·关于Java框架技术专题
 ·XML全攻略技术专题
 ·JAVA开源技术介绍专题
 ·Java嵌入式开发之J2ME技术专题
 ·超前体验 Oracle 11g的5个新特性…
 ·揭密使用VB.NET的五个实用技巧
 ·Oracle和SQL Server常用函数对比专题…
 ·展现C#世界 C#程序设计专题…
 ·Java入门 Tomcat的配置技巧精华专题…
 ·Oracle RMAN物理备份技术详解…
 今日更新
 社区讨论
 博客论点
 频道精选
 Oracle频道相关导航