您的位置:首页 > 其它

创建一个加密表空间并对表内数据进行加密的示例

2013-09-08 18:10 330 查看

基于表空间的加密概念

对整个表空间进行加密,表空间中的所有对象都是加密的,例如 在加密表空间上创建一个表,表的所有字段都是加密状态,适用Oracle11gR2以上版本。

表空间加密数据的优点:不会再收到字段加密的限制,例如 字段类型,索引类型,需要设置no salt才可见索引等。

表空间加密数据的缺点:外部大对象不支持,exp/imp逻辑导出导入不支持但可以用expdp/impdp数据泵。

加密表空间与wallet的关系

1.Oracle 表空间的加密与解密完全是基于wallet钱包中的密钥进行的。

2.如果wallet是open状态,那么我们可以使用其中的密钥,进行加密与解密处理。

3.如果wallet是close状态,那么我们就拿不到密钥,此时加密表空间是不可用的,例如 查询 修改 创建 都不允许。

TDE的使用场合

1.保护敏感数据,禁止未授权的访问,只有打开钱包才能查看数据。

2.防止数据丢失,当加密表空间的数据文件被拷贝走了,如果你没有密钥是无法还原数据的。

3.防止数据被截获,当在网络传输时加密后的信息更安全,即使截获了也无法得知内容。

创建一个加密表空间及数据表示例

1.wallet未打开时无法创建加密表空间。

BYS@ bys001>create tablespace encry_test datafile '/u01/app/oracle/oradata/bys001/encry_test.dbf' size 10m encryption using 'aes128' default storage(encrypt);

create tablespace encry_test datafile ' /u01/app/oracle/oradata/bys001/encry_test.dbf' size 10m encryption using 'aes128' default storage(encrypt)

*
ERROR at line 1:

ORA-28365: wallet is not open

打开 wallet

BYS@ bys001>alter system set wallet open identified by "testtest";
System altered.

2.创建并验证表空间是否使用加密

BYS@ bys001>create tablespace encry_test datafile '/u01/app/oracle/oradata/bys001/encry_test.dbf' size 10mencryption using 'aes128' default storage(encrypt);

Tablespace created.

BYS@ bys001>select tablespace_name,encrypted from dba_tablespaces;

TABLESPACE_NAME                ENC

------------------------------ ---

SYSTEM                         NO

SYSAUX                         NO

UNDOTBS1                       NO

TEMP                           NO

USERS                          NO

EXAMPLE                        NO

CATALOG1                       NO

BYS_FLASHBACK                  NO

TEST1                          NO
ENCRY_TEST                     YES

3.在加密表空间上创建表,表默认继承了表空间的加密属性

BYS@ bys001>create table encry_test2 tablespace encry_test as select * from tab;

Table created.

BYS@ bys001>select * from encry_test2;

TNAME                          TABTYPE  CLUSTERID

------------------------------ ------- ----------

ENCRY_TEST                     TABLE

ENCRY_TEST2                    TABLE

FRUIT_LIST                     TABLE

FRUIT_LIST_AUDIT               TABLE

TEST                           TABLE

TEST3                          TABLE

TEST4                          TABLE

TEST5                          TABLE

TEST6                          TABLE
TEST_AUDIT                     TABLE

4.关闭wallet,新创建的表将不能查询。

BYS@ bys001>alter system set wallet close identified by "testtest";

System altered.

BYS@ bys001>select * from encry_test2;
select * from encry_test2

              *

ERROR at line 1:

ORA-28365: wallet is not open
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: