Oracle TDE 加密测试

开启TDE 加密功能(11g)

1、创建“wallet”目录以及指定位置

默认位置:在ORACLE_BASE/admin/$ORACLE_SID/目录下创建文件夹wallet(如果没有创建)指定位置:在 $ORACLE_HOME/network/admin 下的 sqlnet.ora中设   置 ENCRYPTION_WALLET_LOCATION 参数,

指定软件wallet路径。其中,在sqlnet.ora 文件中添加的条目如下。

    使用指定位置创建wallet目录

ENCRYPTION_WALLET_LOCATION=

(SOURCE=

  (METHOD=FILE)

   (METHOD_DATA=

    (DIRECTORY= /home/oracle/db/admin/TEST/wallet)

  )

 )

  1. 设置wallet密码

 SQL>alter system set encryption key identified by "password";

   

[oradts@ehr-db-ps-test-s01]$ sqlplus /nolog

SQL*Plus: Release 11.2.0.4.0 Production on Thu Nov 17 11:50:19 2022

Copyright (c) 1982, 2013, Oracle.  All rights reserved.

SQL> conn /as sysdba

Connected.

SQL> alter system set encryption key identified by "oracle";

System altered.

     Wallet目录下产生ewallet.p12

  1.  打开和关闭加密wallet

       在创建加密表空间之前,包含有表空间主密钥的 Oracle wallet 必须处于打开状态。

(1).先尝试关闭 Oracle wallet

SQL> ALTER SYSTEM SET ENCRYPTION WALLET CLOSE IDENTIFIED BY "oracle";

(2).打开 Oracle wallet

SQL> ALTER SYSTEM SET ENCRYPTION WALLET OPEN IDENTIFIED BY "oracle";

(3).检验 Oracle wallet 状态

SQL> SELECT * FROM GV$ENCRYPTION_WALLET;

可以看到,设置完wallet密码后,wallet默认是打开的。需要注意的是wallet的密码一旦生成之后,每次数据库重启之后,都必须使用命令显式打开。并且wallet一旦打开之后,在数据库实例关闭之前会一直处于打开状况,除非显式的通过close命令关闭

  1. 设置自动钱包功能

orapki wallet create -wallet /home/oracle/db/admin/TEST/wallet  -auto_login_local

提示输入 primary 设置的钱夹密码钱夹

存放目录下会生成一个新文件 cwallet.sso

  1. 关闭自动打开的钱包

ALTER SYSTEM SET ENCRYPTION WALLET CLOSE;

 

  • 开启TDE 加密功能(19C)
  1. 查询默认密钥库目录位置

col WRL_TYPE for a20
col WRL_PARAMETER for a20
col WALLET_TYPE for a20
col STATUS for a20
set line 200

SELECT CON_ID,STATUS,KEYSTORE_MODE,WRL_PARAMETER,WALLET_TYPE FROM gv$encryption_wallet;

select * from v$encryption_wallet;

select CON_ID,STATUS from V$ENCRYPTION_WALLET;

  1. 创建默认密钥库目录

mkdir -p $ORACLE_BASE/admin/CDB/wallet

  1. 创建密码保护的密钥库

administer key management create keystore '/u01/oracle/db/19.0.0.0/admin/CDB/wallet' identified by CDB#2022tde;

  1. 开启TDE

ADMINISTER KEY MANAGEMENT SET KEYSTORE OPEN IDENTIFIED BY CDB#2022tde CONTAINER=ALL;

  1. 软件密钥库中设置CDB的TDE主加密密钥

ADMINISTER KEY MANAGEMENT SET KEY IDENTIFIED BY CDB#2022tde WITH BACKUP CONTAINER=ALL;

  1. 配置自动登录(可选)

administer key management create auto_login keystore from keystore '/u01/oracle/db/19.0.0.0/admin/CDB/wallet' identified by CDB#2022tde;

  1. 软件密钥库中设置PDB的TDE主加密密钥(可选)

  1. 关闭TDE

administer key management set keystore CLOSE identified BY CDB#2022tde;

  • 19C 加密已存在的表空间

1、19C 加密已存在的表空间(离线加密)

1、ALTER TABLESPACE data_temp OFFLINE NORMAL;

2、备份表空间数据文件

3、 ALTER TABLESPACE data_temp ENCRYPTION OFFLINE ENCRYPT; --默认加密算法

ALTER TABLESPACE data_temp ENCRYPTION OFFLINE USING 'AES256' ENCRYPT; --使用加密算法

ALTER DATABASE DATAFILE 'user_01.dbf' ENCRYPT;--加密某个数据文件

4、ALTER TABLESPACE data_temp ONLINE;

2、19C加密已存在的表空间(在线加密)

ALTER TABLESPACE data_temp ENCRYPTION ONLINE USING 'AES192' ENCRYPT FILE_NAME_CONVERT = (' data_temp01.dbf', ' data_temp01_enc.dbf');--单个文件转换

FILE_NAME_CONVERT = (' /u01/oracle/db/data/CDB/TEST/datafile', ' /u01/oracle/db/data/CDB/TEST/datafile/enc');--目录转换

FILE_NAME_CONVERT = (' data_temp', ' data_temp_enc');--匹配模式转换

3、创建加密表空间

CREATE TABLESPACE DATA_TEMP DATAFILE '/u01/EBSUAT/db/data/CDB/TEST/datafile/data_temp001.dbf' SIZE 2000M  ENCRYPTION ENCRYPT;

4、具体加密措施加密列

加密对象:TEST001NAME、EMAIL、FIXED_PHONE、MOBILE_PHONE

ALTER TABLE TEST001 MODIFY (NAME ENCRYPT NO SALT);

ALTER TABLE TEST001 MODIFY (EMAIL ENCRYPT NO SALT);

ALTER TABLE TEST001 MODIFY (FIXED_PHONE ENCRYPT NO SALT);

ALTER TABLE TEST001 MODIFY (MOBILE_PHONE ENCRYPT NO SALT);

取消列加密

ALTER TABLE TEST001 MODIFY (NAME DECRYPT);

ALTER TABLE TEST001 MODIFY (EMAIL DECRYPT);

ALTER TABLE TEST001 MODIFY (FIXED_PHONE DECRYPT);

ALTER TABLE TEST001 MODIFY (MOBILE_PHONE DECRYPT);

影响:

据其它用户测试在线加密表空间中原SQL最终用户响应时间的性能影响为 4% 8%CPU 利用率提高了 1% 5% 对整个实例的性能影响可能在50%左右,相关的等待事件主要是I/O类,时间mode中可以看到Tablespace encryption elapsed time较高。

猜你喜欢

转载自blog.csdn.net/zll4859291/article/details/129862429
今日推荐