Azure SQL托管实例数据库删除审计日志缺失及Event Hub日志可视化问题
解决方案:Azure SQL MI审计日志缺失DROP/DELETE事件及Event Hub数据可视化
一、修复DROP/DELETE操作审计日志缺失问题
检查审计策略的操作组覆盖
服务器级和数据库级的审计策略必须包含对应敏感操作的事件组:- DROP操作对应DATABASE_OBJECT_CHANGE_GROUP(库对象变更)或SERVER_OBJECT_CHANGE_GROUP(服务器级对象变更)
- DELETE操作对应DML_CHANGE_GROUP(数据操纵语言变更)
可以通过以下查询验证策略配置:
-- 检查服务器级审计规范 SELECT name, audit_action_name, is_enabled FROM sys.server_audit_specification_details; -- 检查数据库级审计规范 SELECT name, audit_action_name, is_enabled FROM sys.database_audit_specification_details;若对应操作组未启用,需通过Azure门户或T-SQL补充添加。
确认诊断设置的日志范围
在Azure SQL托管实例的诊断设置中,必须勾选SQLSecurityAuditEvents类别,并且确保设置应用到所有数据库(包括master等系统库),避免仅勾选部分用户库导致系统级或其他库的DROP/DELETE事件未被捕获。排查Event Hub筛选规则
检查Event Hub的路由或捕获规则,确认没有设置过滤条件排除operation_name包含DROP或DELETE的事件,比如避免类似operation_name NOT IN ('DROP', 'DELETE')的错误筛选逻辑。
二、实现Event Hub接收数据的可视化
使用Azure Monitor工作簿构建可视化面板
- 进入Azure门户的Azure Monitor服务,创建新的工作簿
- 添加数据源为Event Hub,选择对应的命名空间和事件流
- 编写Kusto查询筛选SQL审计日志,示例:
AzureDiagnostics | where ResourceType == "SQLMANAGEDINSTANCES" | where Category == "SQLSecurityAuditEvents" | summarize count() by operation_name, bin(TimeGenerated, 1h) | render columnchart - 添加图表(柱状图、折线图)展示操作类型分布,添加表格展示事件详情(含数据库名、执行用户、操作时间)
配置参考截图

截图中重点关注数据源选择区域、时间范围配置以及指标筛选条件,确保关联到正确的SQL审计日志事件流。
内容的提问来源于stack exchange,提问作者Nauman Kyani
相关产品推荐
相关产品推荐

