DESC:oracle19c rac 环境下部署keystore到asm共享存储&验证pdb和cdb环境中透明加密功能
Last Update:2020-7-15 14:45
Time:2020-7-30 13:31 Tittle:oracle19c rac 环境下部署keystore到asm共享存储&验证pdb和cdb环境中透明加密功能
Version:003
配置软件秘钥仓库
软件秘钥仓库是一个容器,在这个容器中存储着透明加密的master key.
步骤 1:在sqlnet.ora文件中配置ENCRYPTION_WALLET_LOCATION(软件秘钥仓库路径)参数
步骤 1.1:(单接节点操作)使用grid用户登录到asmcmd创建keystore路径,此处使用asm路径+DATA/keyStore
asmcmd > cd DATA
asmcmd > mkdir keyStore
asmcmd > cd keyStore
asmcmd > mkdir tde
步骤 1.2:(全部节点操作)使用grid用户登录修改sqlnet.ora文件,重启系统监听。
cd /u01/app/19.0.0/grid/network/admin
编辑sqlnet.ora增加如下内容,没有文件请自己添加该文件
NAMES.DIRECTORY_PATH= (TNSNAMES, EZCONNECT)
ENCRYPTION_WALLET_LOCATION=
(SOURCE=
(METHOD=FILE)
(METHOD_DATA=
(DIRECTORY=+DATA/keyStore)))
步骤 1.3:(全部节点操作)使用oracle用户登录修改initcdb1.ora init.ora文件,完成后重启集群环境
cd /u01/app/oracle/product/19.0.0/db_1/dbs
增加以下内容到initcdb1.ora(每个节点都要修改,后面1是编码,各个节点不同)
cdb1.WALLET_ROOT=+DATA/keyStore
cdb2.WALLET_ROOT=+DATA/keyStore
cdb1.EXTERNAL_KEYSTORE_CREDENTIAL_LOCATION=+DATA/keyStore
cdb2.EXTERNAL_KEYSTORE_CREDENTIAL_LOCATION=+DATA/keyStore
增加以下内容到init.ora
WALLET_ROOT=+DATA/keyStore
EXTERNAL_KEYSTORE_CREDENTIAL_LOCATION=+DATA/keyStore
步骤 1.4:(单节点操作)root用户登录重启集群服务(启动较慢注意观察各节点&服务的状态)
启动|停止|检查全部集群服务
crsctl stop cluster -all
crsctl start cluster -all
检查各工作服务状态(一定要等到状态全部正常,数据库正常启动才可以继续操作)
crsctl status res -t
步骤 2:创建一个软件秘钥仓库
请确认步骤1操作完成,检查路径正确无误。
创建一个有密码的软件秘钥仓库
步骤 2.2:sys用户执行下面命令创建有密码的软件秘钥仓库
此处使用步骤1创建的软件秘钥仓库路径密码为(oadsffLDKF^#f23),请根据具体情况修改.
确认下软件秘钥仓库是否在设定的位置和状态是否正常
select * from V$ENCRYPTION_WALLET;
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-pHOzy1DV-1596093083680)(http://192.168.100.132/uploads/big/c78c1458000240472865b3fa10ca111a.png)]
刚配置ENCRYPTION_WALLET_LOCATION情况下软件秘钥仓库状态是NOT_AVAILABLE
(可选)如果上面查询到其他的路径下面已经存在了秘钥仓库请先备份,以防出现秘钥丢失问题(如果没有执行会报错,这个报错没有关系)
钱包密码请咨询管理员,并进行物理备份
ADMINISTER KEY MANAGEMENT BACKUP KEYSTORE IDENTIFIED BY xxxxxxxxxxxxxxxxxx
创建软件秘钥仓库
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-mzeOptuC-1596093083684)(http://redevm/uploads/big/96eea4f68a110369b825e79d440323bb.png)]
-- 在asm上创建keystore
ADMINISTER KEY MANAGEMENT CREATE KEYSTORE '+DATA/keyStore/tde/' IDENTIFIED BY oadsffLDKF#f23
-- 设置文件类型为FILE
ALTER SYSTEM SET TDE_CONFIGURATION="KEYSTORE_CONFIGURATION=FILE";
确认状态,现在为关闭状态(默认创建完成为关闭状态)
select * from V$ENCRYPTION_WALLET;
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-qiBpVxND-1596093083688)(http://192.168.100.132/uploads/big/a0c0de968a9471bb918d79bd110e7842.png)]
步骤 3: 在使用软件秘钥仓库之前,必须手动打开软件秘钥仓库
使用sys登录数据库,在多租户环境中必须先登录到CDB$ROOT容器来操作,然后进入到PDB中再次打开软件秘钥仓库.
注意:下面操作先在CDB后再PDB中操作.
ADMINISTER KEY MANAGEMENT SET KEYSTORE OPEN IDENTIFIED BY oadsffLDKF#f23
select * from V$ENCRYPTION_WALLET;
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-6OlHRERl-1596093083691)(http://192.168.100.132/uploads/big/0676a67e7df71518e5b528a934dec76b.png)]
步骤 4: 在软件秘钥仓库中配置表空间加密使用的master key
注意:下面操作先在CDB后再PDB中操作.(可能会报主秘钥不存在,请忽略,检查wallet状态为password就是正常状态)
-- sys 用户登录
ADMINISTER KEY MANAGEMENT SET KEY IDENTIFIED BY oadsffLDKF#f23 WITH BACKUP USING 'backup' container = CURRENT
select * from V$ENCRYPTION_WALLET;
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-6qd6Zzup-1596093083696)(http://redevm/uploads/big/5ce6367d07fad0e039704434cf693712.png)]
select open_mode from v$database;
select * from V$PDBS;
步骤 5: 开始创建加密表空间&软件秘钥仓库可以正常使用&验证透明加密功能正常
完成步骤4操作后我们在PDB3中创建一个加密表空间测试下透明加密.
步骤 5.1 为表空间加密配置初始化兼容参数
-- 登录到PDB2中
conn c##sec_admin/password@pdb2.example.com as syskm
-- 查看兼容参数(保证参数是11.2.0.0 or higher,否则请修改该启动参数)
SHOW PARAMETER COMPATIBLE
步骤 5.2 设置表空间加密主秘钥(如果步骤4已经配置相应的pdb此处忽略,否则请参照步骤4)
步骤 5.3 创建加密表空间和KEYSTORE闭合开启测试(在PDB中测试)
CDB中测试TDE
-- 设置秘钥为文件系统
ALTER SYSTEM SET TDE_CONFIGURATION="KEYSTORE_CONFIGURATION=FILE" ;
-- 查看keystore状态
select * from V$ENCRYPTION_WALLET;
-- 开|关keystore
ADMINISTER KEY MANAGEMENT SET KEYSTORE CLOSE IDENTIFIED BY oadsffLDKF#f23;
ADMINISTER KEY MANAGEMENT SET KEYSTORE OPEN IDENTIFIED BY oadsffLDKF#f23;
-- 创建主秘钥
ADMINISTER KEY MANAGEMENT SET KEY IDENTIFIED BY oadsffLDKF#f23 WITH BACKUP USING 'backup' container = CURRENT;
-- 查看数据文件位置
select * from dba_data_files;
-- 创建加密表空间
DROP TABLESPACE redeEncrypt INCLUDING CONTENTS AND DATAFILES;
CREATE TABLESPACE redeEncrypt
DATAFILE '+DATA/CDB/DATAFILE/encrypt.dbf'
SIZE 10M
ENCRYPTION USING 'AES192'
default storage(encrypt);
-- 创建测试表
drop table test1;
create table test1 tablespace redeEncrypt as select 1 as "test" from dual;
select * from test1;
PDB中测试TDE
-- 查看keystore状态
select * from V$ENCRYPTION_WALLET;
-- 开|关keystore
ADMINISTER KEY MANAGEMENT SET KEYSTORE CLOSE IDENTIFIED BY oadsffLDKF#f23;
ADMINISTER KEY MANAGEMENT SET KEYSTORE OPEN IDENTIFIED BY oadsffLDKF#f23;
-- 创建主秘钥
ADMINISTER KEY MANAGEMENT SET KEY IDENTIFIED BY oadsffLDKF#f23 WITH BACKUP USING 'backup' container = CURRENT;
-- 查看数据文件位置
select * from dba_data_files;
-- 创建加密表空间
DROP TABLESPACE pubEncrypt INCLUDING CONTENTS AND DATAFILES;
CREATE TABLESPACE pubEncrypt
DATAFILE '+DATA/CDB/DATAFILE/pubEncrypt.dbf'
SIZE 10M
ENCRYPTION USING 'AES192'
default storage(encrypt);
-- PDB普通用户
create user rede identified by 1;
grant connect,resource to rede;
alter user rede default tablespace pubEncrypt;
grant unlimited tablespace to rede;
-- 创建测试表
drop table test1;
create table test1 tablespace pubEncrypt as select 1 as "test" from dual;
select * from test1;
注意:需要测试软件秘钥仓库开启关闭后状态均正常,表在软件秘钥仓库关闭状态下被查询报ora-28365为测试通过.
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-XWOPj65p-1596093083698)(http://redevm/uploads/big/7a07dcd98fa7a320b7bfe290c9f840e8.png)]
参考
select * from dba_tablespaces T where T.encrypted = 'YES'
本文地址:https://blog.csdn.net/u011078141/article/details/107674717
如对本文有疑问, 点击进行留言回复!!
oracle19c rac 环境下部署keystore到asm共享存储&验证pdb和cdb环境中透明加密功能
SqlServer2008实例35排名搜索之根据权值返回排名搜索结果
com.alibaba.druid.sql.parser.ParserException: syntax error, error in :‘xx)
PLSQL Developer 13 报错“数据库字符集(AL32UTF8)和客户端字符集(2%)是不同的。字符集转化可能会造成不可预期的后果“
网友评论