Oracle 11g使用透明数据加密保护存储数据

Oracle 11g使用透明数据加密保护存储数据Oracle11g使用透明数据加密保护存储数据透明数据加密(TDE)使您能够加密存储在表和表空间中的敏感数据,例如信用卡号。对于有权访问数据的数据库用户或应用程序,加密数据将被透明地解密。TDE有助于在存储介质或数据文件被盗时保护存储在介质上的数据。一、关于透明数据加密Oracle数据库使用身份验证、授权和审计机制来保护数据库中的数据,而不是存储数据的操作系统数据文件中的数据。为了保护这些数据文件,Oracle数据库提供了透明数据加密(TDE)。TDE加密存储在数据文件中的敏感数据。_oracle透明数据加密

大家好,欢迎来到IT知识分享网。

Oracle 11g使用透明数据加密保护存储数据

透明数据加密 (TDE) 使您能够加密存储在表和表空间中的敏感数据,例如信用卡号。对于有权访问数据的数据库用户或应用程序,加密数据将被透明地解密。TDE 有助于在存储介质或数据文件被盗时保护存储在介质上的数据。

一、关于透明数据加密

Oracle 数据库使用 身份验证、授权和审计机制来保护数据库中的数据,而不是存储数据的操作系统数据文件中的数据。为了保护这些数据文件,Oracle 数据库提供了透明数据加密 (TDE)。TDE 加密存储在数据文件中的敏感数据。为防止未经授权的解密,TDE 将加密密钥存储在数据库外部的安全模块中。

数据库用户和应用程序不需要管理密钥存储或创建辅助表、视图和触发器。处理敏感数据的应用程序可以使用 TDE 来提供强大的数据加密,而对应用程序几乎没有更改。

使用 TDE 来保护存储在表列中的机密数据,例如信用卡号和社会保险号。您还可以使用 TDE 来加密整个表空间。

二、透明数据加密的类型

透明数据加密 (TDE) 列加密使您能够加密存储在选定表列中的敏感数据。
TDE 表空间加密使您能够加密存储在表空间中的所有数据。

1.TDE 列加密

TDE 列加密用于保护存储在表列中的机密数据,例如信用卡和社会保险号。TDE 列加密使用基于密钥的两层架构透明地加密和解密敏感表列。TDE 主加密密钥存储在外部安全模块中,该模块可以是 Oracle 钱包或硬件安全模块 (HSM)。这个主加密密钥用于加密表密钥,表密钥又用于加密和解密表列中的数据。

  • TDE 列加密:
    在这里插入图片描述

2.TDE 表空间加密

TDE 表空间加密使您能够加密整个表空间。在加密表空间中创建的所有对象都会自动加密。如果您想保护表中的敏感数据,TDE 表空间加密非常有用。您不需要对每个表列执行粒度分析来确定需要加密的列。

  • TDE 表空间加密:
    在这里插入图片描述

三、启用透明数据加密

  • 1.在 sqlnet.ora 文件中指定 Oracle Wallet 位置

打开文件$ORACLE_HOME/network/admin/sqlnet.ora,在末尾输入以下行:

ENCRYPTION_WALLET_LOCATION= 
  (SOURCE=(METHOD=FILE)(METHOD_DATA= 
   (DIRECTORY=/app/wallet)))

保存更改并关闭文件。

  • 2.创建主加密密钥
    输入以下命令以创建主加密密钥:
SQL> ALTER SYSTEM SET ENCRYPTION KEY IDENTIFIED BY "Easy2rem";

上述命令实现以下​​功能:
如果指定的目录中不存在加密钱包,则创建加密钱包 ( ewallet.p12),打开钱包,并创建/重新创建 TDE 的主加密密钥。
如果指定目录中存在加密钱包,则会打开钱包,并创建/重新创建 TDE 的主加密密钥。

  • 3.打开钱包

每次关闭数据库时,Oracle wallet 都会关闭。您也可以明确关闭钱包。
您需要确保 Oracle wallet 处于打开状态,然后才能执行任何加密或解密操作。使用以下命令打开包含主加密密钥的钱包:
打开钱包的密码是您为创建主加密密钥指定的密码。

SQL> ALTER SYSTEM SET ENCRYPTION WALLET OPEN IDENTIFIED BY "Easy2rem";
  • 4.关闭钱包

打开钱包后,它会一直保持打开状态,直到您关闭数据库实例,或者通过发出以下命令明确关闭它:

SQL> ALTER SYSTEM SET ENCRYPTION WALLET CLOSE IDENTIFIED BY "Easy2rem";

自动登录钱包是自动打开的,不需要显式打开。
如果需要关闭自动登录钱包,可以使用以下命令关闭:

SQL> ALTER SYSTEM SET ENCRYPTION WALLET CLOSE;

关闭自动登录钱包不需要密码。

  • 5、创建带有加密列的表
    使用默认算法 (AES192) 创建带有加密列的新表:
CREATE TABLE employee (
     first_name VARCHAR2(128),
     last_name VARCHAR2(128),
     empID NUMBER,
     salary NUMBER(6) ENCRYPT
);
  • 6、创建加密表空间
    TDE 表空间加密使您能够加密整个表空间。默认情况下,存储在表空间中的所有数据都是加密的。因此,如果您在加密表空间中创建任何表,默认情况下它是加密的。您不需要对每个表列执行粒度分析来确定需要加密的列。
CREATE TABLESPACE securespace
DATAFILE '/home/user/oradata/secure01.dbf' 
SIZE 150M 
ENCRYPTION 
DEFAULT STORAGE(ENCRYPT);

四、创建自动登录的wallet

输入命令:owm
[oracle@oracle ~]$ owm

打开wallet,勾选:Auto Login
在这里插入图片描述
在wallet命令自动创建一个cwallet.sso文件:

$ ll /u01/wallet
total 8
-rw-------. 1 oracle oinstall 3933 Nov 23 16:18 cwallet.sso
-rw-------. 1 oracle oinstall 3867 Nov 23 16:16 ewallet.p12

重启数据库实例后,查看wallet为自动打开状态:

SQL> shtudown immediate
SQL> startup
SQL> SELECT * FROM v$encryption_wallet;
WRL_TYPE    WRL_PARAMETER   STATUS   WALLET_TYPE   WALLET_OR KEYSTORE FULLY_BAC CON_ID
----------- --------------- -------- ------------- --------- -------- --------- -------
FILE        /u01/wallet/    OPEN     UNKNOWN       SINGLE    NONE     NO        0

参考

https://docs.oracle.com/cd/E11882_01/network.112/e40393/asotrans.htm#ASOAG600

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/27507.html

(0)
上一篇 2023-09-17 22:45
下一篇 2023-09-19 11:15

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

关注微信