Oracle 安全性能优化

Oracle 安全性能优化

适用版本:Oracle Database 11g / 12c / 19c / 23ai 文档版本:v1.0 / 2026-07


1. 概述

安全配置可能影响性能,需平衡[1]:

安全特性

  • TDE 加密
  • Audit 审计
  • VPD / FGAC
  • Database Vault
  • Redaction

2. TDE 性能影响

2.1 TDE 表空间加密

-- 1. Wallet
ALTER SYSTEM SET ENCRYPTION WALLET OPEN IDENTIFIED BY ******

-- 2. 加密表空间
CREATE TABLESPACE secure_data 
  DATAFILE '...' SIZE 1G 
  ENCRYPTION USING 'AES256' 
  DEFAULT STORAGE (ENCRYPT);

2.2 性能影响

  • I/O 增加 5-15%
  • CPU 增加
  • 推荐硬件加速

2.3 优化

-- 1. AES 算法
-- 2. 硬件加密卡
-- 3. 仅敏感表空间

详细见:Oracle TDE 透明数据加密


3. Audit 性能

3.1 统一审计

-- 启用
ALTER SYSTEM SET audit_trail = DB, EXTENDED SCOPE=SPFILE;

-- 审计
AUDIT SELECT TABLE BY SCOTT BY ACCESS;

3.2 性能影响

  • INSERT 审计记录
  • 大量审计影响性能

3.3 优化

-- 1. 仅审计关键操作
-- 2. 定期清理
TRUNCATE TABLE aud$;

-- 3. FGA 精细审计
DBMS_FGA.ADD_POLICY(...);

4. VPD / FGAC

4.1 VPD

BEGIN
  DBMS_RLS.ADD_POLICY(
    object_schema => 'SCOTT',
    object_name => 'EMPLOYEES',
    policy_name => 'emp_policy',
    function_schema => 'SCOTT',
    policy_function => 'emp_sec',
    statement_types => 'SELECT'
  );
END;
/

4.2 性能影响

  • 谓词追加
  • 函数调用开销

4.3 优化

-- 1. 简单谓词函数
-- 2. 索引列
-- 3. 缓存策略

5. Database Vault

5.1 启用

-- DV 配置
-- Realm
-- Command Rule
-- Factor

5.2 性能影响

  • 检查开销
  • Realm 查询

5.3 优化

  • 最小化 Realm
  • 优化规则

6. Data Redaction

6.1 策略

BEGIN
  DBMS_REDACT.ADD_POLICY(
    object_schema => 'SCOTT',
    object_name => 'EMPLOYEES',
    policy_name => 'redact_salary',
    column_name => 'SALARY',
    function_type => DBMS_REDACT.FULL
  );
END;
/

6.2 性能影响

  • 数据脱敏开销

7. 网络加密

7.1 Native Encryption

# sqlnet.ora
SQLNET.ENCRYPTION_SERVER = REQUIRED
SQLNET.ENCRYPTION_TYPES_SERVER = (AES256)

7.2 性能影响

  • 网络加密开销
  • CPU 增加

7.3 优化

-- 1. AES 高效算法
-- 2. 硬件加速
-- 3. 仅敏感连接

详细见:Oracle 网络架构与监听器配置


8. SSL/TLS

8.1 配置

# listener.ora / sqlnet.ora
SQLNET.AUTHENTICATION_SERVICES = (TCPS)

8.2 性能影响

  • 握手开销
  • 加密传输

8.3 优化

  • 会话复用
  • 硬件加速

9. 密码策略

9.1 Profile

CREATE PROFILE secure_profile LIMIT
  FAILED_LOGIN_ATTEMPTS 5
  PASSWORD_LIFE_TIME 90
  PASSWORD_REUSE_TIME 365
  PASSWORD_REUSE_MAX 5
  PASSWORD_VERIFY_FUNCTION ora12c_strong_verify_function;

9.2 性能影响

  • 登录验证开销

10. 监控

10.1 审计日志

SELECT * FROM dba_audit_trail ORDER BY timestamp DESC;

10.2 性能影响监控

-- 加密 I/O 影响
SELECT * FROM v$sysstat WHERE name LIKE '%encryption%';

11. 常见坑与排错

11.1 TDE 性能

-- 1. 硬件加速
-- 2. AES 算法
-- 3. 仅敏感

11.2 Audit 过多

-- 1. 精简审计
-- 2. 定期清理
-- 3. FGA

11.3 网络加密慢

-- 1. AES
-- 2. 硬件
-- 3. 会话复用

12. 最佳实践

  1. TDE 仅敏感表空间:平衡
  2. AES 算法:高效
  3. 硬件加速:性能
  4. 审计精简:关键
  5. FGA 替代全审计:精细
  6. VPD 简单谓词:优化
  7. 最小 Realm:DV
  8. 网络加密选择性:敏感
  9. 定期清理审计:空间
  10. 监控性能影响:调整

13. 参考资料

[1] Oracle Database Security Guide 19c https://docs.oracle.com/en/database/oracle/oracle-database/19/dbseg/