Oracle 10G:透明数据加密技术(TDE)
http://tech.ddvip.com 2008年03月27日 社区交流
内容摘要:在Oracle的最新版本10g R2中,出现最及时的技术应该是透明数据加密技术(Transparent Data Encryption,TDE)。
准备用于加密的数据库:
在本部分内容中,您将更新 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>altersystemsetkeyidentifiedby"hurray"
2;
altersystemsetkeyidentifiedby"hurray"
*
ERRORatline1:
ORA-28368:cannotauto-createwallet
/opt/oracle/admin/test97/wallet/ 目录是用来存放生成的钱夹的。
可以为加密钱夹选择任何目录,但路径不应指向在数据库安装过程中创建的标准模糊钱夹 (cwallet.sso)。
2. 接下来,您需要打开钱夹并创建万能加密密钥。从终端窗口中,输入以下命令:
connect / as sysdbaalter system set key identified by "welcome1";
此命令的作用为:
l 如果指定的目录中不存在加密钱夹,则将创建加密钱夹 (ewallet.p12)、打开此钱夹并创建/重新创建 TDE 的万能密钥。
l 如果指定目录中存在加密钱夹,则将打开此钱夹并创建/重新创建 TDE 的万能密钥。
之后,就可以测试数据了。
下面是实验记录:
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 row created.
SQL> insert into test values(2,'33245235');
SQL> commit;
Commit complete.
SQL> select * from test;
ID CREDIT_CARD_NUMB
---------- ----------------
1 1231243242
2 33245235
可见,数据查看是明文,因为这个时候,加密钱夹已经打开,数据可以解密。
来源:IT专家网 作者:zy 责编:豆豆技术应用
- Oracle 10g 教程
- Oracle 故障处理
- Oracle 存储过程
- Oracle 备份恢复
- Oracle 性能调优
- Oracle 9i 教程
- Oracle 11g 教程
- Oracle 启动
- Oracle 命令
- Oracle 数据库管理
- Oracle 时间
- Oracle 密码
- Oracle 用户
- Oracle 常见错误
- Oracle 建数据表
- Oracle 索引
- Oracle 数据库连接
- Oracle 锁
- Oracle RAC 专题
- Oracle exp/imp 命令
- Oracle 表空间
- Oracle 查询
- Oracle 函数
- Oracle PL/SQL 专题
- 更多Oracle 专题>>>