Oracle 备份加密详解
Oracle 备份加密详解
适用版本:Oracle Database 10g / 11g / 12c / 19c / 23ai 文档版本:v1.0 / 2026-07
1. 概述
备份加密保护数据安全[1]:
详细见:Oracle 备份压缩与加密。
2. 加密模式
2.1 透明加密
- 依赖 Wallet
- 自动加解密
- 无密码
- 推荐
2.2 密码加密
- 密码
- 跨服务器迁移
- 不依赖 Wallet
2.3 双模
- Wallet + 密码
- 灵活
3. 透明加密
3.1 Wallet 配置
# sqlnet.ora
ENCRYPTION_WALLET_LOCATION =
(SOURCE = (METHOD = FILE)
(METHOD_DATA = (DIRECTORY = /u01/wallet)))
3.2 启用 Wallet
ADMINISTER KEY MANAGEMENT
CREATE KEYSTORE '/u01/wallet'
IDENTIFIED BY ******
ADMINISTER KEY MANAGEMENT
SET KEY OPEN
IDENTIFIED BY ******
ADMINISTER KEY MANAGEMENT
SET KEY IDENTIFIED BY ******
3.3 RMAN 配置
CONFIGURE ENCRYPTION FOR DATABASE ON;
CONFIGURE ENCRYPTION ALGORITHM 'AES256';
3.4 备份
RMAN> BACKUP DATABASE;
# 自动加密
4. 密码加密
4.1 设置
RMAN> SET ENCRYPTION ON IDENTIFIED BY ****** ONLY;
RMAN> BACKUP DATABASE FORMAT '/u01/backup/enc_%U.bkp';
4.2 恢复
RMAN> SET DECRYPTION ON IDENTIFIED BY ******
RMAN> RESTORE DATABASE;
RMAN> RECOVER DATABASE;
5. 双模
5.1 设置
RMAN> SET ENCRYPTION ON IDENTIFIED BY ******
-- 不加 ONLY,Wallet 也可用
RMAN> BACKUP DATABASE;
5.2 恢复
- Wallet 可用:自动
- Wallet 不可用:密码
6. 算法
6.1 选项
- AES128
- AES192
- AES256(默认)
- AES256:最安全
6.2 配置
CONFIGURE ENCRYPTION ALGORITHM 'AES256';
7. Data Pump 加密
7.1 透明
expdp scott/tiger ... ENCRYPTION=ALL ENCRYPTION_MODE=TRANSPARENT
7.2 密码
expdp scott/tiger ... ENCRYPTION=ALL
ENCRYPTION_MODE=PASSWORD
ENCRYPTION_PASSWORD=******
7.3 双模
expdp scott/tiger ... ENCRYPTION=ALL
ENCRYPTION_MODE=DUAL
ENCRYPTION_PASSWORD=******
详细见:Oracle Data Pump 全集。
8. TDE
8.1 列加密
ALTER TABLE employees MODIFY (salary ENCRYPT);
ALTER TABLE employees ADD (credit_card VARCHAR2(50) ENCRYPT);
8.2 表空间加密
CREATE TABLESPACE secure_ts
DATAFILE '/u01/oradata/secure01.dbf' SIZE 1G
ENCRYPTION USING 'AES256' DEFAULT STORAGE (ENCRYPT);
8.3 优势
- 数据加密
- 透明
- 合规
9. 备份安全最佳实践
9.1 加密
- RMAN 加密
- Data Pump 加密
- 传输加密
9.2 访问控制
- 备份文件权限
- Wallet 安全
- 密码管理
9.3 审计
- 备份操作
- 恢复操作
- 访问审计
10. 应用场景
10.1 合规
- 金融
- 医疗
- 个人信息
- 加密备份
10.2 异地
- 备份到异地
- 防泄露
- 加密
10.3 云
- 备份到云
- 加密
- 安全
10.4 跨服务器
- 密码加密
- 不依赖 Wallet
- 迁移
11. 常见坑与排错
11.1 ORA-28365
- Wallet 未打开
- 打开 Wallet
11.2 ORA-28374
- 密钥问题
- 检查 Wallet
11.3 备份无法恢复
- 密码丢失
- Wallet 丢失
- 不可恢复
12. 监控
12.1 Wallet 状态
SELECT * FROM v$encryption_wallet;
-- status: OPEN
12.2 加密备份
SELECT * FROM v$rman_encryption_algorithms;
12.3 审计
SELECT * FROM dba_audit_object
WHERE obj_name LIKE '%KEY%';
13. 最佳实践
- 透明加密:推荐
- Wallet 备份:关键
- AES256:安全
- 密码管理:安全
- 访问控制:严格
- 审计:完整
- 合规:满足
- 测试:恢复
- 文档:流程
- 演练:定期
14. 参考资料
[1] Oracle Database Advanced Security Guide 19c, “Transparent Data Encryption” https://docs.oracle.com/en/database/oracle/oracle-database/19/asoag/