Oracle数据库加密与安全

Wallet简介:

Oracle Wallet(即内部加密技术TDE( Transparent DataEncryption)
TDE是 Oracle10gR2中推出的一个新功能,使用时要保证Oracle版本是在10gR2或者以上

Wallet配置:

1.创建一个新目录,并指定为Wallet目录
/home/oracle/ora_wallet
2.设置wallet目录,在参数文件sqlnet.ora中,按照下面的格式加入信息
ENCRYPTION_WALLET_LOCATION=
(SROUCE=(METHOD=FILE)(METHOD_DATA=
  (DIRECTORY=/home/oracle/ora_wallet)
  )
)

3.创建maset key文件,指定wallet密码,使用sys用户登入系统,建立加密文件
alter system set encryption key identified by oracle1;

4.启动,关闭Wallet
启动:
alter system set encryption wallet open identified by oracle1;

关闭:

到此 Wallet配置成功,创建了master key 。

使用Wallet对数据进行加密

加密数据列:
对数据列加密是TDE一个常用的功能。常需要对数据库中某个表的某个敏感数据进行加密处理,防止信息的外泄。
首先,在定义数据表中的数据列(或者修改数据列)的时候,使用ENCRYPT进行标注。表示这个字段是使用加密保护的重要数据。
注意不能对sys模式下拥有的对象进行加密:
现在对sal这一列进行加密

再次查看:

可以看到此时仍然可以看到数据,原因是因为钱包已经打开了。

我们把钱包关掉:

再次查看:

可以看到已经不允许被查看了。

表空间加密

1、表空间加密( Tablespace encryption)加密整个表空间,创建在加密表空间中的所有对象自动加密。
2、表空间加密保护整个表空间中的数据的安全,如:数据文件或数据文件备份若被窃取,没有密钥不可能查看到其中的数据,这对于保护诸如军用级别的数据、his系统的病人数据等非常重要
3、表空间加密( Tablespace encryption)使用透明数据加密结构( transparent data encryption architecture)也就是使用与 ide(transparentdata encryption)类似的方法。表空间加密的密钥再次由一个称为主密钥的密钥二次加密,主密钥存储在 wallet中。加密后的表空间加密的密钥存储在数据库中的字典表中。
4、对加密数据的操作过程中,加密数据同样受到保护:加入访问表空间里面加密的数据,数据在undo表空间,redo log中都会被加密。
5、不能对已经在使用的表空间进行加密,但是可以通过向加密表空间中利用 data pump导入数据,或使用 create table, as select.或 alter table.move,把已经存在数据转储到加密表空间

实例:

1.设置主密钥,主密钥存储在wallet中
ENCRYPTION_WALLET_LOCATION=
(SROUCE=(METHOD=FILE)(METHOD_DATA=
  (DIRECTORY=/home/oracle/ora_wallet)
  )
)

和之前的配置相同。

2.打开Wallet
3.创建加密表空间算法:
加密算法包括:其中可以指定加密算法,也可以不指定加密算法,默认使用AES128算法。3DES168、AES128、AES192、AES256
查看当前表空间是否是加密的:
4.创建加密表空间:
再次查看表空间加密情况:
创建一个表指定在该加密表空间中:
如果现在把钱包关掉,理想情况应该是看不见该表的数据了,如下图。

加密表空间备份和恢复

注意,只有钱包打开的时候才能备份加密的表空间,restore的时候也是如此。
模拟删除数据文件,加密表空间被误删除。
数据文件恢复完毕如图:
正常启动数据库

相关推荐

  1. Oracle数据库安全管理数据加密技术

    2024-07-16 00:02:02       29 阅读
  2. 解决Spring Boot中的数据安全加密

    2024-07-16 00:02:02       24 阅读
  3. Oracle EMCC数据库集中管理平台安装配置使用

    2024-07-16 00:02:02       41 阅读
  4. Oracle透明数据加密数据泵文件导出

    2024-07-16 00:02:02       31 阅读
  5. 加密解密】【01】网络安全体系

    2024-07-16 00:02:02       29 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-16 00:02:02       67 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-16 00:02:02       72 阅读
  3. 在Django里面运行非项目文件

    2024-07-16 00:02:02       58 阅读
  4. Python语言-面向对象

    2024-07-16 00:02:02       69 阅读

热门阅读

  1. 数据结构初阶(C语言)-顺序表

    2024-07-16 00:02:02       22 阅读
  2. C# 做一个临时的对象结构,并用linq查找

    2024-07-16 00:02:02       16 阅读
  3. 动态路由-ospf

    2024-07-16 00:02:02       23 阅读
  4. 如何备份Syslog配置文件?

    2024-07-16 00:02:02       18 阅读
  5. float和double使用注意问题

    2024-07-16 00:02:02       20 阅读
  6. excel及panda的部分内容

    2024-07-16 00:02:02       20 阅读
  7. 消息中间件面试题

    2024-07-16 00:02:02       21 阅读
  8. Kafka配置SSL信道加密

    2024-07-16 00:02:02       21 阅读
  9. TensorFlow 的基本概念和使用场景

    2024-07-16 00:02:02       18 阅读