如果您决定使用 TDE,请采取以下步骤:
- 配置钱夹: 钱夹一般位于文件夹 $ORACLE_BASE/admin/$ORACLE_SID/wallet 中,但是您可以通过将以下行放入文件 SQLNET.ORA 中使用任何位置:
ENCRYPTION_WALLET_LOCATION=
(SOURCE=
(METHOD=file)
(METHOD_DATA=
(DIRECTORY=/orawall) ) )
在这里,将钱夹位置设置为 /orawall。
- 打开该钱夹,分配一个密码: 执行以下命令:
alter system set encryption key authenticated by "53cr3t";
- 选择的密码要难以猜测,容易记忆。 (为了安全,您可能不想让 DBA 了解钱夹密码,所以需要另一个人打开该钱夹。) 现在,从现在开始,每次数据库打开时,您必须使用以下方式打开该钱夹:
alter system set encryption wallet open authenticated by "53cr3t";
之后,您创建的表可以包含经过加密的列: create table accounts
(
acc_no number not null,
first_name varchar2(30) not null,
last_name varchar2(30) not null,
SSN varchar2(9) ENCRYPT USING 'AES128',
acc_type varchar2(1) not null,
folio_id number ENCRYPT USING 'AES128',
sub_acc_type varchar2(30),
acc_open_dt date not null,
acc_mod_dt date,
acc_mgr_id number
)
当用户将数据插进该表时,数据就自动转化为加密的数据并放置到磁盘上。 类似地,当选择语句检索到数据时,数据自动转化为加密的值,并且向用户显示。
提示 和任何重要的更改一样,有一些重要的提示。
- 加密是非常占用 CPU 的操作。 如果系统已经受 CPU 所限,这会使系统更糟。
- 索引不会和加密的列配合得很好,尤其是谓词,比如 WHERE <ColumnName> LIKE 'XYZ%'。该谓词应该已经在未加密的列中使用索引范围扫描,但是还将使用全面的表扫描。
- 密码管理是一个很重要的问题。 如果您丢失了密码,就访问不到该数据。
操作计划 操作计划位于策略部分。
4.5 安全备份
背景 许多情况下,DBA 会忽略最容易受到攻击的要害: 数据库备份。 一旦数据不在服务器的安全范围内,您将不再能控制这些数据。 如果恶意入侵者可以盗窃磁带,他就可以将它们安装到一个不同的服务器上,恢复数据库,再慢慢地浏览数据。 幸运地是,即使这样您只要使用加密备份还是可以消除这种风险的。
策略 在 Oracle 数据库 10g 第 2 版和更高版本中,您可以以三种不同的模型在 RMAN 上对备份进行加密: 透明模式、基于密码的模式和混合模式。
透明模式。 按照这种方法(也是最常用的方法),RMAN 从加密钱夹中获取加密密码(在前面讨论过了),并使用它对备份集进行加密。 不必说,在备份和恢复中钱夹必须是打开的。 如果钱夹没有打开,您将看到以下错误: ORA-19914: unable to encrypt backup
ORA-28365: wallet is not open
(编辑:aniston)
|