#安全审计基础配置

# 开启审计功能

该功能开关由UNIFIED_AUDITING参数的取值控制。YashanDB安装后,默认UNIFIED_AUDITING = FALSE,即关闭审计功能,此状态下不会进行任何审计。

Note:

备库无论UNIFIED_AUDITING参数值如何,始终不会执行审计。

  1. 以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> 
    
  2. 执行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;
    

    审计功能开启后,系统将执行已使能的各项审计策略

# 配置审计日志存储方式

单机部署或共享集群部署中,审计日志可以存储在系统表(默认值)或外部文件中,通过配置相应的定时任务可实现审计日志自动转储,避免记录过度增长影响数据库审计处理。

存算一体分布式集群部署中,只能存储在系统表中,无法进行调整/切换,无需执行本操作。

  1. 以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> 
    
  2. 检查审计日志存储相关参数值是否符合预期,若不符合,可自定义调整。

    -- 查看相关参数
    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]。
    超过该值时会自动清理最早的审计日志文件。
  3. 调用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:

    转为外部文件存储后新增的审计日志记录在审计视图中不可查,应及时手动清理审计日志相关系统表(或创建清理审计日志的定时任务配合使用)降低其占比从而继续转换回系统表存储。

pdf-btn 下载文档 copy-btn 复制链接
edit-icon
反馈
coperate-icon
coperate
合作
communication-icon
communicate
交流