理论

创建一个加密表空间,作用是只要放在加密表空间中的表,没有wallet钱包中的密钥用户是打不开的,这就可以形成一个保护罩,就算你有权限查询数据也不能看到明文,这就起到了风险保障的作用,只有知道秘钥的管理员才能查看,下面我们来详细讲解。

加密表空间与wallet的关系

1.Oracle 表空间的加密与解密完全是基于wallet钱包中的密钥进行的。

2.如果wallet是open状态,那么我们可以使用其中的密钥,进行加密与解密处理。

3.如果wallet是close状态,那么我们就拿不到密钥,此时加密表空间是不可用的,例如 查询 修改 创建 都不允许

4.唯一删除表是不需要密钥的,wallet是open or close状态都无所谓,直接删除即可

TDE(Transparent Data Encryption透明数据加密)使用场景

1.保护敏感数据,禁止未授权的访问,只有打开钱包才能查看数据。

2.防止数据丢失,当加密表空间的数据文件被恶意拷贝走后,如果你没有密钥是无法还原数据的。

3.防止数据被截获,当在网络传输时加密后的信息更安全,即使截获了也无法得知其中内容。

TDE可支持的加密算法种类 AES(Advanced Encryption Standard高级加密标准) 是DES的升级版

①  AES192  192位密钥加密
②  AES128(default)  128位密钥加密
③  AES256  256位密钥加密
④  3DES168  168位密钥加密 DES(Data Encryption Standard数据加密标准)

AES标准是美国联邦政府采用的一套加密标准,用来替代原先的DES标准。AES属于对称性加密算法(加密与解密使用同一密钥进行),反之非对称性加密算法(加密与解密使用不同密钥进行)例如 RSA标准有公钥与私钥。

TDE(Transparent Data Encryption透明数据加密)加密原理

①  先要创建一个“wallet钱包”,这个钱包里面保存着密钥,Oracle就是通过这个密钥对列进行加密和解密的。

②  生成wallet钱包之前先要设定wallet钱包的保存位置

设置wallet钱包位置的文件$ORACLE_HOME/network/admin/sqlnet.ora

[oracle@cafe admin]$ vim sqlnet.ora  在这个文件中添加如下脚本

encryption_wallet_location=(source=    (method=file)     (method_data=
(directory=/u01/app/oracle/product/11.1.0/db_1/network/admin)))

③  在wallet里面创建密钥key,创建后自动打开wallet,密码"oracle"不加引号时,后面使用时也不需要加引号

SYS@COFFEE>alter system set encryption key authenticated by "oracle";

或【alter system set encryption key identified by oracle;】

System altered.

说明:authenticated by "oracle" :打开/关闭wallet的认证密码是oracle

如果报错

SYS@COFFEE> alter system set encryption key authenticated by "oracle";
alter system set encryption key authenticated by "oracle"
*
ERROR at line 1:

ORA-28368: cannot auto-create wallet不能自动创建钱包

在/u01/app/oracle/product/11.1.0/db_1目录下运行sqlplus 登录数据库就可以成功执行

④  查看一下wallet钱包是否在$ORACLE_HOME/network/admin/目录下生成

[oracle@cafe admin]$ ll

-rw-r--r-- 1 oracle dba  1573 Nov  7 03:21 ewallet.p12  这个就是我们刚才生成的wallet钱包,里面有我们创建的密钥(密文形式),打开wallet钱包的认证密码是“oracle”,创建wallet钱包之后密钥就自动在里面了。

⑤ 创建一个加密表空间

SYS@COFFEE> create tablespace
encrypted_tbs datafile '/u01/app/oracle/oradata/COFFEE/datafile/test_encrypted01.dbf'
size 10m encryption default storage(encrypt);  【CREATE TABLESPACE
stablespace DATAFILE '/u01/app/oracle/oradata/COFFEE/datafile/stablespace.dbf'
SIZE 10M ENCRYPTION DEFAULT STORAGE(ENCRYPT);】 Tablespace created.

创建加密表空间encrypted_tbs,大小10MB,如果不指定加密算法默认使用AES128加密算法密钥长度128位,需open wallet

如果报错

ERROR at line 1:

ORA-28365: wallet is not open  此时报错是没有打开钱包,因为表空间的加密是使用钱包中的密钥进行加密的,如果钱包没打开便无法使用密钥,当然也就创建不了加密表空间。

Open&Close the Oracle Wallet mothed
alter system set wallet open identified by "oracle";  打开钱包
【alter system set wallet close identified by "oracle";】  关闭钱包11gR2 
【alter system set wallet close;】   关闭钱包11gR1

查看表空间属性

SYS@COFFEE> select tablespace_name,encrypted
from dba_tablespaces;TABLESPACE_NAME ENC------------------------------ ---SYSTEM NOSYSAUXNOUNDOTBS1NO TEMPNO USERS NO EXAMPLE NO TBS1 NO TBS2 NO TBS3NO TBS4 NO ENCRYPTED_TB YES 加密状态

实验

在加密表空间上创建一张表encryption_t,这张表上数据全部为加密状态

SYS@COFFEE> create table encrypted_t (x int) tablespace encrypted_tbs;
Table created.

插入一条数据

SYS@COFFEE> insert into encrypted_t
values (100); 1 row created. SYS@COFFEE> commit; Commit complete. SYS@COFFEE> select * from encrypted_t;
X --------------------
100

我们关闭wallet看效果

SYS@COFFEE> alter system set wallet close;
System altered.

当没有打开wallet时不允许开打表

SYS@COFFEE> select * from encrypted_t;
select * from encrypted_t
  *
ERROR at line 1:
ORA-28365: wallet is not open

创建一个新表encryption_t1时,也需要使用wallet钱包中的密钥进行加密

SYS@COFFEE> create table encrypted_t1 (x int) tablespace encrypted_tbs;

create table encrypted_t1 (x int) tablespace encrypted_tbs

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

唯一例外->删除表,因为删除的过程是不需要密钥key参与,所以wallet是open or close状态都无所谓,直接执行就好。

SYS@COFFEE>drop table encryption_t;
Table dropped.

小结:

我们介绍了Oracle加密表空间的原理、场景、实践操作,从理论到实践给朋友们展示了Oralce加密表空间的使用效果,这里切记一定不要忘记wallet的认证密码,否则你将不能查询到表空间内的数据,最好的办法就是把密码记录到一个密码生成器中,定期更新,这样既保证安全性又保证不会忘记。

oracle加密表空间相关推荐

  1. oracle加密表空间,加密表空间

    1.编辑 $ORACLE_HOME/network/admin/sqlnet.ora 文件,添加参数 encryption_wallet_location=(source=(method=file)( ...

  2. Oracle 11g下加密表空间的使用

    1.创建目录 [oracle@db1~]$ ~ $mkdir -p /u01/app/oracle/admin/orcl/wallet 2.修改sqlnet.ora [oracle@db1~]$ ~  ...

  3. oracle 11g 表空间加密

    由于我们在创建表空间后产生的dbf数据文件是没有加密的二进制文件,通过简单的转储或者strings便能查看里面的数据 所以存在着数据泄露的隐患,我们可以通过wallets方法对创建的表空间进行加密. ...

  4. 管理表空间和数据文件——建立表空间——建立字典管理表空间和建立加密表空间...

    字典管理表空间是为了与早期版本兼容而保留的空间管理特性.当使用字典管理方式时,区数据字典进行管理. 注意:如果建立字典管理表空间,那么要求system表空间必须采用字典管理方式,并且建立时,需要指定e ...

  5. Oracle数据库查看表空间sql语句、查看Oracle数据库表空间剩余 、修改表空间、库备份

    一  Oracle数据库查看表空间sql语句 1.oracle查看表空间当前用户 SQL>  select  username,default_tablespace  from user_use ...

  6. Oracle 数据库表空间不足拓展方法实例演示,表空间剩余大小查看,通过新增表空间文件拓展表空间,表空间文件路径查看

    Oracle 数据库表空间 第一章:表空间的拓展 ① 查看剩余表空间大小 ② 查看表空间文件路径 ③ 通过新增表空间文件拓展表空间 ④ 查看表空间已分配大小 第一章:表空间的拓展 ① 查看剩余表空间大 ...

  7. oracle创建表空间.创建用户.创建表

    oracle创建表空间.创建用户.创建表 转:http://blog.csdn.net/zhoubl668/archive/2009/02/02/3858576.aspx 在SQL*Plus中:(1) ...

  8. oracle 创建表空间 pcincrease,oracle建表空间 各种语句

    oracle建表空间 各种语句 在创建用户之前,先要创建表空间: 其格式为:格式: create tablespace 表间名 datafile '数据文件名' size 表空间大小; 如: SQL& ...

  9. oracle删除表空间中的表,ORACLE删除表空间中的所有表

    ORACLE删除表空间中的所有表,如果是非sysdbA连接用如下sql语句 declare vsql varchar2(200); cursor c1 is select 'drop table '| ...

  10. linux数据库创建表空间语句,如何用LINUX用命令创建ORACLE数据库表空间和用户

    如何用LINUX用命令创建ORACLE数据库表空间和用户 文本模式下如何建 更新时间:2019-06-21 19:36 最满意答案 先su 到 oracle用户,SYS用户以DBA身份登陆 //创建临 ...

最新文章

  1. Beaglebone Black开发板安装驱动
  2. 网站优化需要团队协作
  3. The user does not exist or is not unique错误
  4. CodeForces - 1325F Ehabs Last Theorem(dfs树找最大环)
  5. mysql 4 中文模糊查询_解决MySQL中文模糊查询问题
  6. SFTPUtils工具类及使用
  7. 1.x和2.x的区别
  8. 通过模板页master page和主题theme来实现网站的风格切换
  9. linux 中常用安装配置
  10. dubbo负载均衡代码分析2(一致性hash策略)
  11. 程序员面试金典——3.6双栈排序
  12. kruskal java_kruskal算法 源码(java)
  13. json标准格式举例_JSON格式简介及一些对应函数
  14. ps4路由器虚拟服务器,在PC上使用PS4手柄图文教程(附模拟360手柄教程)
  15. http长连接、长轮询的理解
  16. 中英文论文写作指导第三部分(实验、材料和方法部分)
  17. 矩形波导中TE波和TM波的截止波数截止波长和截止频率
  18. windows无法连接到某个wifi_笔记本电脑连接wifi时一直显示“windows无法连接到。。(wifi)”是怎么回事...
  19. mySql笔记之基础篇(参看尚硅谷视频)
  20. python画图网格线设置_python基础之plt.grid(网格线设置)

热门文章

  1. 笔记本显示器仅计算机,笔记本可以当屏幕用 笔记本屏幕当显示器用
  2. WIFI后台数据一文解释通
  3. 求递推数列通项的特征根法
  4. 计算机取证之Xplico ——合天网安实验室学习笔记
  5. [Vue Router warn]
  6. 小明左右手分别拿两张纸牌:黑桃10和红心8,现在交换手中的牌。编写并输出互换后的结果
  7. UltraCompare文件内容比较工具
  8. linux如何查看读写权限,Linux系统下如何查看及修改文件读写权限
  9. Thinkphp添加图片全屏水印
  10. 用ZeroTier搭建属于自己的虚拟局域网(VLAN)