Encryption tablespaces加密的表空间
在Oracle database 11g中,可以通过加密permanent表空间来保护敏感数据.加密的表空间主要是防止未授权的数据访问.例如:当加密的表空间数据被归档后,把归档文件传输到另一台服务器,此时数据仍是加密的,而且可以防止操作系统工具对数据的访问.加密的表空间数据被写到undo tablespace,redo logs,archivelog,temp tablespace时仍是被加密的,在恢复时需要解密.
注:不能创建加密的undo,temp表空间
另: 允许分区表或分区索引里既有加密的表空间也有非加密的表空间.
1. 配置Wallet
加密表空间使用Oracle数据库的透明数据加密特性(Transparent data encryption), 因此需要创建oracle wallet来存储数据库主要的密钥.在创建和使用加密表空间时(存储和查询加密数据)必须先打开wallet.
另:只有设置COMPATIBLE=11.1.0才可以使用加密的表空间特性
1.1 配置sqlnet.ora文件
添加如下行到sqlnet.ora文件:
WALLET_LOCATION=(SOURCE=(METHOD=FILE)(METHOD_DATA=(DIRECTORY=/u01/app/oracle/admin/orcl/wallet)))
1.2 创建密钥
$ sqlplus / as sysdba
SQL> ALTER SYSTEM SET ENCRYPTION KEY IDENTIFIED BY "oracle";
默认设置完自动打开wallet
1.3 管理wallet
1.3.1 打开wallet
SQL> alter system set wallet open identified by "oracle";
1.3.2 关闭wallet
SQL>alter system set wallet close;
2. 创建加密的表空间
加密方法:3DES168, AES128, AES196, AES256
例子:
1). Default algorithm is 'AES128'
SQL> create tablespace securetbs
datafile '/data/oradata/orcl/securetbs01.dbf' size 10M
encryption
default storage(encrypt);
2). Using algorithm 'AES256'
SQL> create tablespace securespace
datafile '/data/oradata/orcl/securespace01.dbf' size 10M
encryption using 'AES256'
default storage(encrypt);
说明:
1. 不能用ALTER TABLESPACE 来加密已经存在的表空间. 但可以使用Data Pump 或 SQL 语句来把数据移到加密的表空间内.例如:CREATE TABLE AS SELECT 或 ALTER TABLE MOVE 命令
2. 加密的表空间传输到其它数据库时有限制.
3. 当恢复数据库涉及到加密表空间时,wallet必须在mount和open之间打开. 以此,恢复进程才能解密数据块和redo.
3. 查询加密的表空间
在视图USER_TABLESPACES, DBA_TABLESPACES, V$TABLESPACE, V$ENCRYPTED_TABLESPACES里可以查看表空间是否为加密表空间.
例如:
SQL>
在Oracle database 11g中,可以通过加密permanent表空间来保护敏感数据.加密的表空间主要是防止未授权的数据访问.例如:当加密的表空间数据被归档后,把归档文件传输到另一台服务器,此时数据仍是加密的,而且可以防止操作系统工具对数据的访问.加密的表空间数据被写到undo tablespace,redo logs,archivelog,temp tablespace时仍是被加密的,在恢复时需要解密.
注:不能创建加密的undo,temp表空间
另: 允许分区表或分区索引里既有加密的表空间也有非加密的表空间.
1. 配置Wallet
加密表空间使用Oracle数据库的透明数据加密特性(Transparent data encryption), 因此需要创建oracle wallet来存储数据库主要的密钥.在创建和使用加密表空间时(存储和查询加密数据)必须先打开wallet.
另:只有设置COMPATIBLE=11.1.0才可以使用加密的表空间特性
1.1 配置sqlnet.ora文件
添加如下行到sqlnet.ora文件:
WALLET_LOCATION=(SOURCE=(METHOD=FILE)(METHOD_DATA=(DIRECTORY=/u01/app/oracle/admin/orcl/wallet)))
1.2 创建密钥
$ sqlplus / as sysdba
SQL> ALTER SYSTEM SET ENCRYPTION KEY IDENTIFIED BY "oracle";
默认设置完自动打开wallet
1.3 管理wallet
1.3.1 打开wallet
SQL> alter system set wallet open identified by "oracle";
1.3.2 关闭wallet
SQL>alter system set wallet close;
2. 创建加密的表空间
加密方法:3DES168, AES128, AES196, AES256
例子:
1). Default algorithm is 'AES128'
SQL> create tablespace securetbs
datafile '/data/oradata/orcl/securetbs01.dbf' size 10M
encryption
default storage(encrypt);
2). Using algorithm 'AES256'
SQL> create tablespace securespace
datafile '/data/oradata/orcl/securespace01.dbf' size 10M
encryption using 'AES256'
default storage(encrypt);
说明:
1. 不能用ALTER TABLESPACE 来加密已经存在的表空间. 但可以使用Data Pump 或 SQL 语句来把数据移到加密的表空间内.例如:CREATE TABLE AS SELECT 或 ALTER TABLE MOVE 命令
2. 加密的表空间传输到其它数据库时有限制.
3. 当恢复数据库涉及到加密表空间时,wallet必须在mount和open之间打开. 以此,恢复进程才能解密数据块和redo.
3. 查询加密的表空间
在视图USER_TABLESPACES, DBA_TABLESPACES, V$TABLESPACE, V$ENCRYPTED_TABLESPACES里可以查看表空间是否为加密表空间.
例如:
SQL>
SELECT t.name, e.encryptionalg algorithm
FROM v$tablespace t, v$encrypted_tablespaces e
WHERE t.ts# = e.ts#;
NAME ALGORITHM
------------------------------ ---------
SECURESPACE AES256
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/9466564/viewspace-608909/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/9466564/viewspace-608909/