Azure SQL托管实例SQL Audit如何排除批量插入操作?
解决Azure SQL托管实例SQL Audit排除批量插入的问题
问题原因
你当前使用的SCHEMA_OBJECT_CHANGE_GROUP预定义审计组范围较宽泛,除了表、存储过程、函数等架构对象的DDL变更外,还会捕获BULK INSERT这类数据加载操作,导致审计资源和存储的不必要消耗。
解决方案
通过替换宽泛的预定义组为更精准的DDL专属审计组,即可排除批量插入这类DML操作的审计:
- 先禁用并删除现有审计规范
ALTER SERVER AUDIT SPECIFICATION [Spec-DDL] WITH (STATE = OFF); DROP SERVER AUDIT SPECIFICATION [Spec-DDL];
- 创建新的服务器审计规范,仅包含DDL相关的细粒度审计组
CREATE SERVER AUDIT SPECIFICATION [Spec-DDL-Only] FOR SERVER AUDIT [Audit-DDL] ADD (DATABASE_CHANGE_GROUP), ADD (DATABASE_OBJECT_CHANGE_GROUP), -- 替换SCHEMA_OBJECT_CHANGE_GROUP为三个精准DDL组 ADD (SCHEMA_OBJECT_CREATE_GROUP), ADD (SCHEMA_OBJECT_ALTER_GROUP), ADD (SCHEMA_OBJECT_DROP_GROUP) WITH (STATE = ON);
说明
SCHEMA_OBJECT_CREATE_GROUP/SCHEMA_OBJECT_ALTER_GROUP/SCHEMA_OBJECT_DROP_GROUP这三个组仅针对架构对象的创建、修改、删除操作进行审计,完全匹配你捕获表、存储过程、函数等DDL变更的需求。- 调整后,BULK INSERT这类DML操作不会再被审计,同时TRUNCATE TABLE仍会被正常捕获(因为TRUNCATE属于DDL范畴)。
内容的提问来源于stack exchange,提问作者Danny
相关产品推荐
相关产品推荐

