WEB开发网
开发学院数据库Oracle Oracle 10g第2版新特性之SQL和PL/SQL 阅读

Oracle 10g第2版新特性之SQL和PL/SQL

 2006-12-30 12:01:50 来源:WEB开发网   
核心提示: 在配置 TDE 之后 — 或者更明确地说是配置了钱夹和万能密钥之后 — 您可以使用它来保护数据值,要为表的一列加密,Oracle 10g第2版新特性之SQL和PL/SQL(2),需要使用以下 SQL:create table accounts(acc_no numb

在配置 TDE 之后 — 或者更明确地说是配置了钱夹和万能密钥之后 — 您可以使用它来保护数据值。要为表的一列加密,需要使用以下 SQL:

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
)

在这里,您在列 SSN 和 FOLIO_ID 上使用了 TDE,它们现在以加密方式存储在表本身。但是,当用户从表中选择时,她看到以明文表示的数据,因为在检索过程中已经完成了解密。如果磁盘被盗,则包含在表段中的信息仍然保持加密状态。盗窃者需要表密钥才能看到加密的值,但是要获得表密钥,他需要万能密钥,而万能密钥存储在外部,因此无法获得。

注意列 SSN 和 FOLIO_ID 后面的子句,这些子句指定 ENCRYPT 使用 128 位高级加密标准。

数据库拥有预先配置的钱夹。要设置钱夹口令,可使用命令:

alter system set encryption key authenticated BY "topSecret";

如果还未创建钱夹,该命令将先创建钱夹,然后将口令设置为“topSecret”(区分大小写)。然后您就可以开始在表的创建和更改期间将加密用于列定义。

为外部表加密

在以上示例中,我使用散列表为列加密。您还可以在外部表上使用 TDE。例如,如果您希望生成一个包含 ACCOUNTS 的数据的转储文件,以便发送到不同的地点,则可以使用简单的 ENCRYPT 子句。

上一页  1 2 3 4 5 6 7  下一页

Tags:Oracle 特性 SQL

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接