#安全审计基础配置
# 开启审计功能
该功能开关由UNIFIED_AUDITING参数的取值控制。YashanDB安装后,默认UNIFIED_AUDITING = FALSE,即关闭审计功能,此状态下不会进行任何审计。
Note:
备库无论UNIFIED_AUDITING参数值如何,始终不会执行审计。
以DBA用户连接并登录数据库。
$ yasql sales/********@192.168.1.2:1688 YashanDB SQL Enterprise Edition Release {version_number} x86_64 Connected to: YashanDB Server Enterprise Edition Release {version_number} x86_64 - Linux SQL>执行ALTER SYSTEM SET PARAMETER语句修改UNIFIED_AUDITING参数值。
ALTER SYSTEM SET UNIFIED_AUDITING=TRUE; -- 若为存算一体分布式集群部署,还需指定TYPE,取值可选CN|DN|MN|ALL ALTER SYSTEM SET UNIFIED_AUDITING=TRUE TYPE=ALL;审计功能开启后,系统将执行已使能的各项审计策略。
# 配置审计日志存储方式
单机部署或共享集群部署中,审计日志可以存储在系统表(默认值)或外部文件中,通过配置相应的定时任务可实现审计日志自动转储,避免记录过度增长影响数据库审计处理。
存算一体分布式集群部署中,只能存储在系统表中,无法进行调整/切换,无需执行本操作。
以DBA用户连接并登录数据库。
$ yasql sales/********@192.168.1.2:1688 YashanDB SQL Enterprise Edition Release {version_number} x86_64 Connected to: YashanDB Server Enterprise Edition Release {version_number} x86_64 - Linux SQL>检查审计日志存储相关参数值是否符合预期,若不符合,可自定义调整。
-- 查看相关参数 SELECT NAME,VALUE,DEFAULT_VALUE FROM V$PARAMETER WHERE NAME LIKE 'AUDIT_%'; NAME VALUE DEFAULT_VALUE ------------------------------------------ ------------------------------------------ ------------------------------------------ AUDIT_QUEUE_WRITE TRUE TRUE AUDIT_QUEUE_SIZE 16M 16M AUDIT_FLUSH_INTERVAL 100 100 AUDIT_RECORD_THRESHOLD 50 50 AUDIT_RECORD_TABLE TRUE TRUE AUDIT_LOG_FILE_COUNT 200 200 AUDIT_LOG_FILE_PATH ?/log/audit ?/log/audit AUDIT_LOG_FILE_SIZE 256M 256M -- 按需调整参数值,例如将审计日志文件数控制在100 ALTER SYSTEM SET AUDIT_LOG_FILE_COUNT = 100 SCOPE=BOTH;参数分类 参数名称 参数说明 异步审计 AUDIT_QUEUE_WRITE 是否开启异步写审计日志,取值范围为[TRUE|FALSE],默认开启异步写。 AUDIT_QUEUE_SIZE 异步写审计日志占用内存空间大小,仅AUDIT_QUEUE_WRITE = TRUE时生效,取值范围为[4M,32M]。 AUDIT_FLUSH_INTERVAL 异步写审计日志时间的间隔(单位:毫秒),仅AUDIT_QUEUE_WRITE = TRUE时生效,取值范围为[50,5000]。 审计日志存储方式 AUDIT_RECORD_TABLE 审计日志是否存储在系统表中,取值范围为[TRUE|FALSE],默认存储在系统表。 审计日志系统表配置 AUDIT_RECORD_THRESHOLD 审计日志相关系统表占用SYSAUX表空间容量的百分比警示值,取值范围为[1,70]。
超过该值时会记录1条ACTION为“AUDIT RECORD THRESHOLD”的审计日志,但不会影响后续的审计日志存储方式,占比超过80%(固定值)才会触发存储方式的切换。审计日志文件配置 AUDIT_LOG_FILE_PATH 审计日志文件的存储路径,路径默认为$YASDB_DATA/log/audit。
文件名固定为audit-yyyymmddhhmmss.aud,不得修改。AUDIT_LOG_FILE_SIZE 单个审计日志文件的大小,取值范围为[128M,4G]。
超过该值时会形成归档并创建新的审计日志文件。AUDIT_LOG_FILE_COUNT 允许同时存在的审计日志文件总数,取值范围为[2,10000]。
超过该值时会自动清理最早的审计日志文件。调用DBMS_SCHEDULER高级包,按需创建实现审计日志自动转储的定时任务。
-- 本文以6秒执行1次CHECK_AUDIT_THRESHOLD函数为例 exec dbms_scheduler.create_job('check_audit_threshold', 'PLSQL_BLOCK', 'declare v1 int; begin select check_audit_threshold() into v1 from dual; end;', 0, sysdate, 'sysdate + 1/(24*60*10)', '2025-12-31 12:00:00', 'DEFAULT_JOB_CLASS', true, false, null);Note:
转为外部文件存储后新增的审计日志记录在审计视图中不可查,应及时手动清理审计日志相关系统表(或创建清理审计日志的定时任务配合使用)降低其占比从而继续转换回系统表存储。

