oracle加密--wallet
TDE(Transparent Data Encryption ),通过使用wallet 对数据加密,物理上对数据文件中的数据进行加密。
工作过程:
当用户插入数据到需要加密的列中的时候,Oracle 10g从钱夹中获取master密钥,用master密钥解密数据字典中的表密钥,然后用解密后的表密钥加密输入数据,再将加密后的数据保存在数据库中。
当用户查询一个加密列的时候,Oracle 将加密的表密钥从数据字典中取出,再取出master密钥,然后解密表密钥,再用解密后的表密钥来解密磁盘上加密的数据,最后返回明文给用户。
所有操作对用户而言是透明的。

1. 创建钱包
SQL> SELECT * FROM V$ENCRYPTION_WALLET;WRL_TYPE WRL_PARAMETER STATUS-------------------- ------------------------------------------------------------ ------------------file /oracle/app/oracle/admin/PROD/wallet CLOSED
mkdir -p /oracle/app/oracle/admin/PROD/wallet
ENCRYPTION_WALLET_LOCATION=(SOURCE=(METHOD=FILE)(METHOD_DATA=(DIRECTORY=/oracle/app/oracle/admin/wallet)))
SQL> ALTER SYSTEM SET ENCRYPTION KEY IDENTIFIED BY "oracle";System altered.SQL> col WRL_PARAMETER for a60SQL> set line 200SQL> SELECT * FROM V$ENCRYPTION_WALLET;WRL_TYPE WRL_PARAMETER STATUS-------------------- ------------------------------------------------------------ ------------------file /oracle/app/oracle/admin/PROD/wallet OPEN
PROD@localhost.localdomain /oracle/app/oracle/admin/PROD/wallet$ lltotal 4-rw-r--r-- 1 oracle oinstall 2845 Jul 9 06:43 ewallet.p12PROD@localhost.localdomain /oracle/app/oracle/admin/PROD/wallet$
-- 不能对 sys用户的表加密
SQL> conn hxy/hxy
Connected.CREATE TABLE cust_payment_info(first_name VARCHAR2(11),last_name VARCHAR2(10),order_number NUMBER(5),credit_card_number VARCHAR2(16) ENCRYPT NO SALT,active_card VARCHAR2(3));
INSERT INTO cust_payment_info VALUES('Jon', 'Oldfield', 10001, '5446959708812985','YES');INSERT INTO cust_payment_info VALUES('Chris', 'White', 10002, '5122358046082560','YES');INSERT INTO cust_payment_info VALUES('Alan', 'Squire', 10003, '5595968943757920','YES');INSERT INTO cust_payment_info VALUES('Mike', 'Anderson', 10004, '4929889576357400','YES');INSERT INTO cust_payment_info VALUES('Annie', 'Schmidt', 10005, '4556988708236902','YES');INSERT INTO cust_payment_info VALUES('Elliott', 'Meyer', 10006, '374366599711820','YES');INSERT INTO cust_payment_info VALUES('Celine', 'Smith', 10007, '4716898533036','YES');INSERT INTO cust_payment_info VALUES('Steve', 'Haslam', 10008, '340975900376858','YES');INSERT INTO cust_payment_info VALUES('Albert', 'Einstein', 10009, '310654305412389','YES');
SQL> select * from cust_payment_info2 ;FIRST_NAME LAST_NAME ORDER_NUMBER CREDIT_CARD_NUMB ACT----------- ---------- ------------ ---------------- ---Chris White 10002 5122358046082560 YESAlan Squire 10003 5595968943757920 YESMike Anderson 10004 4929889576357400 YESAnnie Schmidt 10005 4556988708236902 YESElliott Meyer 10006 374366599711820 YESCeline Smith 10007 4716898533036 YESSteve Haslam 10008 340975900376858 YESAlbert Einstein 10009 310654305412389 YES8 rows selected.
SQL> ALTER SYSTEM SET ENCRYPTION WALLET close identified by oracle;System altered.SQL> conn hxy/hxyConnected.SQL> select * from cust_payment_info;select * from cust_payment_info*ERROR at line 1:ORA-28365: wallet is not open
SQL> CREATE TABLESPACE securespace2 DATAFILE '/home/oracle/oracle3/product/11.1.0/db_1/secure01.dbf'3 SIZE 150M4 ENCRYPTION5 DEFAULT STORAGE(ENCRYPT);Tablespace created.
SQL> CREATE TABLE customer_payment_info2 (first_name VARCHAR2(11),3 last_name VARCHAR2(10),4 order_number NUMBER(5),5 credit_card_number VARCHAR2(16),6 active_card VARCHAR2(3))TABLESPACE securespace;Table created.
PROD@localhost.localdomain /oracle/app/oracle/product/11.2.0/network/admin$ mkstore -wrl /oracle/app/oracle/product/11.2.0/network/admin/wallet/ -listOracle Secret Store Tool : Version 11.2.0.4.0 - ProductionCopyright (c) 2004, 2013, Oracle and/or its affiliates. All rights reserved.Enter wallet password:Oracle Secret Store entries:ORACLE.SECURITY.DB.ENCRYPTION.ARMxdklw5k9zv9UpvDKPCDMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAORACLE.SECURITY.DB.ENCRYPTION.MASTERKEYPROD@localhost.localdomain /oracle/app/oracle/product/11.2.0/network/admin/wallet$ lltotal 4-rw-r--r-- 1 oracle oinstall 2581 Jul 9 08:35 ewallet.p12
| 文档 ID 1206180.1 文档 ID 1228046.1 Master Note For Transparent Data Encryption ( TDE ) 文档 ID 394539.1 ORA-28353 - Cannot Set The Encryption Key Password for TDE (文档 ID 394539.1) |
oracle加密--wallet的更多相关文章
- oracle加密encrypt,解密decrypt
目录 oracle加密encrypt,解密decrypt 加密 解密 oracle加密encrypt,解密decrypt 有的oracle版本没有加解密函数,以下操作可以手动添加 oracle数据使用 ...
- oracle加密-des 简单举例.
Declare v_seed Raw(128); v_key_1 Raw(64); v_key_2 Raw(64); v_Text_for_encrypted Raw(64); v_mw ...
- Oracle加密解密
Oracle内部有专门的加密包,可以很方便的对内部数据进行加密(encrypt)和解密(decrypt). 介绍加密包之前,先简单说一下Oracle基本数据类型——RAW类型. RAW,用于保存位串的 ...
- Oracle加密表空间进行数据加密的示例
接上篇:http://www.cnblogs.com/myrunning/p/4292049.html 1查看数据库版本 2查看当前数据库表空间 从这里看到我们此时数据库里没有加密表空间. 3创建加密 ...
- oracle加密传输
参考文章: http://blog.itpub.net/24052272/viewspace-2129175/ oracle在传输过程中,正常是明文传输的,例如SQL以及执行的结果. 看看做的测试: ...
- Oracle wrap 和 unwrap( 加密与解密) 说明
一. Wrap 说明 官网的说明如下: A PL/SQL Source Text Wrapping http://download.oracle.com/docs/cd/E11882_01/appde ...
- 数据库安全之TDE列加密
透明数据加密(Transparent Data Encryption) TDE - 基于列的加密 由于有了Oracle的TDE-基于列的加密,你所要做的只是定义需要加密的列,Oracle将为包含加密列 ...
- Oracle 11g R2 Backup Data Pump(数据泵)之expdp/impdp工具
Oracle Data Pump(以下简称数据泵)是Oracle 10g开始提供的一种数据迁移工具,同时也被广大DBA用来作为数据库的逻辑备份工具和体量较小的数据迁移工具.与传统的数据导出/导入工具, ...
- Oracle DB 移动数据
描述移动数据的方式 • 创建和使用目录对象 • 使用SQL*Loader 加载非Oracle DB(或用户文件)中的数据 • 使用外部表并通过与平台无关的文件移动数据 • 说明Oracle 数据泵的 ...
随机推荐
- 【Python 代码】3D TIF 拆成若干张tif (ISBI细胞数据集)
from libtiff import * imgdir = TIFF3D.open("train-labels.tif") imgarr = imgdir.read_image( ...
- 用java将简单的word文档换成pdf文档
用java将简单的word文档换成pdf文档的方式很多,因为很多都没有实际测试过,所以这里就先泛泛的说一下 整体上来看分两种: 1.纯java代码实现,有很多优秀的开源软件可以用,比如poi,itex ...
- Communications link failure due to underlying exception: ** BEGIN NESTED EXC
一是将 wait_timeout=31536000 interactive_timeout=31536000 将过期时间修改为1年. 二是在连接URL上添加参数:&autoReconnect= ...
- Jira 入门【转】
JIRA是Atlassian公司出品的项目与事务跟踪工具,被广泛应用于缺陷跟踪.客户服务.需求收集.流程审批.任务跟踪.项目跟踪和敏捷管理等工作领域.它是一个集 项目计划.任务分配.需求管理.错误跟踪 ...
- 使用Eclipse创建Web项目时WEB-INF下找不到web.xml问题详解
版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/yjrguxing/article/deta ...
- JFinal-layui极速开发企业应用管理系统
Jfinal-layui 官网:http://www.qinhaisenlin.com/ 项目:https://gitee.com/QinHaiSenLin/Jfinal-layui 介绍 JFina ...
- ffmpeg x264安装
fmpeg安装第三方编码器(encoder)库,ffmpeg编码h264(完) ffmpeg安装第三方编码器(encoder)库 关键词:ffmpeg.编码h264.第三方encoder 安装好了ff ...
- Dart泛型
/* 通俗理解:泛型就是解决 类 接口 方法的复用性.以及对不特定数据类型的支持(类型校验) */ //只能返回string类型的数据 // String getData(String value){ ...
- Python中__new__和__init__的区别与联系
__new__ 负责对象的创建而 __init__ 负责对象的初始化. __new__:创建对象时调用,会返回当前对象的一个实例 __init__:创建完对象后调用,对当前对象的一些实例初始化,无返回 ...
- 有些lambda表达式就可以体现出编程中「Context(上下文)」环境
编程中什么是「Context(上下文)」? 每一段程序都有很多外部变量.只有像Add这种简单的函数才是没有外部变量的.一旦你的一段程序有了外部变量,这段程序就不完整,不能独立运行.你为了使他们运行 ...