You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

MSSQL 2012-19 Server Audit无法删除 20-30分钟后自动重建

问题根因

这个审计自动重建的触发源不在SQL Server内部的用户自定义对象范畴,属于外部安全合规机制的强制修复动作,核心特征完全匹配基线巡检逻辑:

  • 执行账号为SQL服务自身运行账号,20-30分钟的固定重建周期,符合企业安全组件、组策略的常规巡检间隔
  • 重建语句为固定模板:带SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED前缀,筛选条件中action_id=1397311308对应成功登录事件、action_id=1179207500对应失败登录事件,是SQL登录审计的标准合规配置
  • 你之前排查的触发器、SQL代理作业、存储过程、数据库级审计规范都属于SQL内部用户可配置对象,而该重建动作是外部进程通过SMO/WMI等管理接口向SQL发送的执行指令,因此在SQL内部元数据中找不到关联配置,仅靠Profiler追踪SQL内部执行流无法定位到外部触发源。

常见触发源包括:域/本地组策略的SQL安全基线规则、服务器安装的EDR/主机安全Agent、数据库合规扫描工具,这类组件会定时校验SQL是否开启了登录审计,一旦检测到审计被删除/关闭,就会自动调用接口重建符合基线要求的审计配置,输出到系统安全日志也是合规要求的默认配置。

彻底处理方案
  • 优先排查外部触发源
    1. 联系服务器运维、安全团队,检查当前服务器绑定的域组策略、本地安全策略中是否存在「强制SQL Server开启登录成功/失败审计」的基线规则,确认该规则是否为合规强制要求。
    2. 排查服务器上安装的EDR、数据库审计插件、合规扫描工具,找到SQL配置巡检相关的功能项,关闭登录审计配置的自动修复逻辑,或者将巡检匹配的审计规则修改为你自定义的配置。
    3. 验证方式:在变更窗口内临时移除SQL服务运行账号的「生成安全审计」本地权限,之后删除审计,如果不再自动重建即可确认是外部安全机制触发。
  • 合规场景适配方案(推荐,不触发基线修复)
    如果企业合规要求必须开启登录审计,不要反复删除审计,直接修改现有审计的输出目标,将日志从系统安全日志改到独立的磁盘目录存储,避免高频写入覆写系统安全日志,参考代码如下:
USE [master]
GO
-- 禁用当前运行的审计
ALTER SERVER AUDIT [Stupid_Audit]
 WITH (STATE = OFF)
GO
-- 修改审计输出到独立文件目录,配置滚动策略,不写入系统安全日志
ALTER SERVER AUDIT [Stupid_Audit] 
TO FILE (
    FILEPATH = 'D:\SQL_Audit_Logs\', -- 替换为实际的独立磁盘目录
    MAXSIZE = 1024 MB,
    MAX_ROLLOVER_FILES = 30 -- 保留30个滚动日志文件,可根据磁盘容量调整
)
WHERE [action_id] = (1397311308)
    AND NOT [additional_information] LIKE '%<pooled_connection>1</pooled_connection>%'
    OR [action_id] = (1179207500)
    AND [additional_information] LIKE '%<error>0x00004818</error>%'
GO
-- 重新启用审计
ALTER SERVER AUDIT [Stupid_Audit]
 WITH (STATE = ON)
GO

注意:只要外部安全基线的自动修复逻辑没有关闭,在SQL层面反复执行删除审计的操作没有意义,每次巡检都会触发重建。

内容的提问来源于stack exchange,提问作者Bad_sa_18456

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.29 00:51:21