1. 首页 > Oracle教程 > 正文

Oracle教程FG172-TDE钱包管理

内容简介:本文介绍Oracle数据库TDE钱包的管理方法,包括钱包的创建、打开、关闭、备份和恢复等操作。TDE钱包是存储加密密钥的安全容器,对TDE的正常运行至关重要。风哥教程参考Oracle官方文档Security部分。

Part01-基础概念与理论知识

1.1 TDE钱包概念

TDE钱包是Oracle数据库用于存储透明数据加密(TDE)所需加密密钥的安全容器。钱包中存储了主密钥,用于加密和解密数据加密密钥(DEK)。

钱包的主要作用:

  • 存储主密钥
  • 保护密钥安全
  • 提供密钥管理功能

1.2 钱包类型

Oracle支持两种类型的TDE钱包:

  • 文件系统钱包:存储在文件系统中的钱包,使用密码保护
  • HSM钱包:存储在硬件安全模块(HSM)中的钱包,提供更高的安全性

1.3 钱包位置配置

钱包位置通过sqlnet.ora文件中的ENCRYPTION_WALLET_LOCATION参数配置:

  • 默认位置:$ORACLE_HOME/admin/$ORACLE_SID/wallet
  • 自定义位置:通过sqlnet.ora文件指定

更多视频教程www.fgedu.net.cn

Part02-生产环境规划与建议

2.1 钱包安全规划

钱包安全规划包括:

  • 钱包目录权限设置(700权限,仅Oracle用户可访问)
  • 钱包密码复杂度要求
  • 钱包密码定期更换策略
  • 钱包访问审计

2.2 钱包备份策略

钱包备份策略包括:

  • 创建钱包后立即备份
  • 每次更改主密钥后备份
  • 备份文件存储在安全位置(离线存储)
  • 定期测试钱包恢复流程

2.3 钱包自动打开配置

为了避免数据库启动时需要手动打开钱包,可以配置钱包自动打开:

  • 使用 AUTO_LOGIN 钱包
  • 配置 WALLET_ROOT 和 TDE_CONFIGURATION 参数(Oracle 12c+)

学习交流加群风哥微信: itpux-com

Part03-生产环境项目实施方案

TDE钱包管理的基本步骤:

  1. 配置钱包位置
  2. 创建钱包
  3. 设置主密钥
  4. 配置钱包自动打开
  5. 备份钱包
  6. 定期管理钱包

Part04-生产案例与实战讲解

4.1 配置钱包位置

# 创建钱包目录
mkdir -p /oracle/admin/fgedudb/wallet
chmod 700 /oracle/admin/fgedudb/wallet

# 配置sqlnet.ora文件
cat > /oracle/product/19c/dbhome_1/network/admin/sqlnet.ora << EOF ENCRYPTION_WALLET_LOCATION = (SOURCE = (METHOD = FILE) (METHOD_DATA = (DIRECTORY = /oracle/admin/fgedudb/wallet) ) ) EOF

4.2 创建钱包并设置主密钥

SQL> ALTER SYSTEM SET ENCRYPTION KEY IDENTIFIED BY “MyWalletPassword123!”;System altered.

SQL> SELECT * FROM v$encryption_wallet;WRL_TYPE WRL_PARAMETER STATUS
——— ———————————— ——————–
FILE /oracle/admin/fgedudb/wallet OPEN

学习交流加群风哥QQ113257174

4.3 打开和关闭钱包

SQL> ALTER SYSTEM CLOSE WALLET IDENTIFIED BY “MyWalletPassword123!”;System altered.

SQL> SELECT * FROM v$encryption_wallet;WRL_TYPE WRL_PARAMETER STATUS
——— ———————————— ——————–
FILE /oracle/admin/fgedudb/wallet CLOSED

SQL> ALTER SYSTEM OPEN WALLET IDENTIFIED BY “MyWalletPassword123!”;System altered.

SQL> SELECT * FROM v$encryption_wallet;WRL_TYPE WRL_PARAMETER STATUS
——— ———————————— ——————–
FILE /oracle/admin/fgedudb/wallet OPEN

4.4 配置自动登录钱包

# 在钱包目录中创建自动登录钱包
cd /oracle/admin/fgedudb/wallet
orapki wallet create -wallet . -auto_login -pwd MyWalletPassword123!

# 验证自动登录钱包是否创建成功
ls -la *.p12

-rw——- 1 oracle oinstall 2048 Apr 1 10:00 ewallet.p12
-rw——- 1 oracle oinstall 2048 Apr 1 10:00 cwallet.sso

SQL> SELECT * FROM v$encryption_wallet;WRL_TYPE WRL_PARAMETER STATUS
——— ———————————— ——————–
FILE /oracle/admin/fgedudb/wallet OPEN

风哥提示:自动登录钱包(cwallet.sso)允许数据库在启动时自动打开钱包,无需手动输入密码。

4.5 备份钱包

# 创建钱包备份目录
mkdir -p /oracle/backup/wallet/$(date +%Y%m%d)

# 备份钱包文件
cp /oracle/admin/fgedudb/wallet/* /oracle/backup/wallet/$(date +%Y%m%d)/# 验证备份
ls -la /oracle/backup/wallet/$(date +%Y%m%d)/-rw——- 1 oracle oinstall 2048 Apr 1 10:00 ewallet.p12
-rw——- 1 oracle oinstall 2048 Apr 1 10:00 cwallet.sso

4.6 轮换主密钥

SQL> ALTER SYSTEM SET ENCRYPTION KEY IDENTIFIED BY “MyWalletPassword123!”;System altered.

# 备份新的钱包
cp /oracle/admin/fgedudb/wallet/* /oracle/backup/wallet/$(date +%Y%m%d)_post_rotate/

更多学习教程公众号风哥教程itpux_com

4.7 恢复钱包

# 停止数据库
sqlplus / as sysdba << EOF SHUTDOWN IMMEDIATE;EXIT;EOF # 恢复钱包文件 cp /oracle/backup/wallet/20260401/* /oracle/admin/fgedudb/wallet/# 启动数据库 sqlplus / as sysdba << EOF STARTUP;EXIT;EOF # 验证钱包状态 SQL> SELECT * FROM v$encryption_wallet;WRL_TYPE WRL_PARAMETER STATUS
——— ———————————— ——————–
FILE /oracle/admin/fgedudb/wallet OPEN

Part05-风哥经验总结与分享

5.1 TDE钱包管理最佳实践

  • 使用自动登录钱包,避免数据库启动时需要手动打开钱包
  • 定期备份钱包文件,存储在安全的离线位置
  • 每次更改主密钥后立即备份钱包
  • 设置钱包目录权限为700,确保只有Oracle用户可访问
  • 使用强密码保护钱包,定期更换密码

5.2 常见问题与解决方案

  • 钱包丢失:使用备份的钱包恢复,确保钱包备份策略有效
  • 钱包密码忘记:无法恢复,需要重建钱包并重新加密数据
  • 钱包无法打开:检查钱包文件权限、密码是否正确、钱包文件是否损坏
  • 自动登录钱包失效:重新创建自动登录钱包

5.3 风哥建议

在生产环境中管理TDE钱包时,建议:

  • 制定详细的钱包管理策略,包括备份、恢复、密码管理等
  • 定期测试钱包恢复流程,确保在紧急情况下能够快速恢复
  • 将钱包备份与数据库备份一起管理,确保数据和密钥都有备份
  • 使用HSM存储钱包,提高安全性(对于高安全要求的环境)
  • 定期审计钱包访问,确保只有授权人员可以访问钱包

from oracle:www.itpux.com

本文由风哥教程整理发布,仅用于学习测试使用,转载注明出处:http://www.fgedu.net.cn/10327.html

联系我们

在线咨询:点击这里给我发消息

微信号:itpux-com

工作日:9:30-18:30,节假日休息