大家好,欢迎来到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