首页 > 数据库 > Oracle > 实操Oracle 23C中加密和审计
加密敏感数据:
使用透明数据加密(TDE)加密表空间。
对特定敏感列(如身份证号)使用列级加密。
审计关键操作:
记录对加密列的访问行为。
审计特权用户的操作(如
DBA角色用户)。
-- 创建钱包目录 ALTER SYSTEM SET ENCRYPTION KEY IDENTIFIED BY "Wallet_Password123"; -- 默认钱包路径:`$ORACLE_BASE/admin/$ORACLE_SID/wallet`
-- 创建加密表空间(使用AES256算法) CREATE TABLESPACE secure_ts DATAFILE 'secure_ts.dbf' SIZE 100M ENCRYPTION USING 'AES256' DEFAULT STORAGE (ENCRYPT);
1.3 在加密表空间中创建表
-- 创建包含敏感数据的表 CREATE TABLE hr.employees ( employee_id NUMBER PRIMARY KEY, name VARCHAR2(50), id_card VARCHAR2(20) ENCRYPT USING 'AES256', -- 列级加密 salary NUMBER ENCRYPT USING 'AES256' ) TABLESPACE secure_ts; -- 插入测试数据 INSERT INTO hr.employees VALUES (1, '王五', '310101199001011234', 15000); COMMIT;
-- 检查统一审计是否启用 SELECT parameter, value FROM v$option WHERE parameter = 'Unified Auditing'; -- 若未启用,需重启数据库并执行(需SYSDBA权限): ALTER SYSTEM SET audit_trail=DB, EXTENDED SCOPE=SPFILE; SHUTDOWN IMMEDIATE; STARTUP;
-- 审计对加密列的SELECT操作
CREATE AUDIT POLICY audit_encrypted_cols
ACTIONS SELECT ON hr.employees(id_card, salary);
-- 审计DBA角色用户的所有操作
CREATE AUDIT POLICY audit_dba_actions
ACTIONS ALL; -- 所有操作
CONDITION 'SYS_CONTEXT(''USERENV'', ''IS_DBA'') = ''TRUE''';
-- 启用审计策略
AUDIT POLICY audit_encrypted_cols;
AUDIT POLICY audit_dba_actions;
-- 创建普通用户 CREATE USER user2 IDENTIFIED BY user2_password; GRANT SELECT, INSERT ON hr.employees TO user2; -- 创建DBA用户 CREATE USER dba_admin IDENTIFIED BY dba_password; GRANT DBA TO dba_admin;
-- 普通用户查询加密列(自动解密) CONNECT user2/user2_password SELECT * FROM hr.employees; -- 结果:正常显示解密后的数据。 -- 直接查看数据文件(验证加密) -- 使用工具(如strings)查看数据文件`secure_ts.dbf`,确认`id_card`和`salary`字段为加密乱码。
-- 查询审计日志(需SYSDBA权限) CONNECT / AS SYSDBA SELECT event_timestamp, dbusername, action_name, sql_text FROM unified_audit_trail WHERE audit_type = 'Standard' ORDER BY event_timestamp DESC;
示例审计记录:
用户
user2查询
hr.employees表的加密列。
用户
dba_admin执行了
GRANT或
ALTER SYSTEM等特权操作。
-- 轮换主加密密钥(需SYSDBA权限) ADMINISTER KEY MANAGEMENT SET KEY IDENTIFIED BY "Wallet_Password123" WITH BACKUP;
-- 禁用审计策略 NOAUDIT POLICY audit_encrypted_cols; -- 删除审计策略 DROP AUDIT POLICY audit_encrypted_cols;
透明数据加密(TDE):
表空间加密自动加密所有数据文件,无需修改应用代码。
列级加密支持更细粒度的保护(需Oracle Advanced Security选件)。
统一审计:
支持基于条件(如用户角色、操作类型)的精细化审计。
审计日志存储在
UNIFIED_AUDIT_TRAIL视图中,支持集中管理。
合规性:
符合GDPR、PCI DSS等法规对数据加密和审计的要求。
通过密钥轮换和审计日志归档实现长期合规。
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/31547506/viewspace-3079182/ ,如需转载,请注明出处,否则将追究法律责任。