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

如何将Azure SQL数据库审计日志自动导入至同库中?

在Azure SQL数据库中自动查看审计日志的实现方案

已完成操作

  1. 在Azure SQL数据库的「Auditing」配置中,将审计目标设置为Storage账户,审计日志会自动累积到指定存储账户内。
  2. 进入Azure门户的对应存储账户,找到存放审计文件的容器,在「Manage ACL」中添加用户主体并赋予读写执行权限后保存。
  3. 可通过以下SQL语句读取指定审计文件:
SELECT *
FROM sys.fn_get_audit_file('https://{Azure storage account}.blob.core.windows.net/{container}/{...path to file...}/{audit file name}.xel',null, null);

由于Azure数据库审计生成的文件名是随机的,要实现自动化导入,需借助Azure函数遍历Blob目录定位文件,再导入数据库后通过上述语句加载日志。

已尝试的方案

  • 查阅微软数据库审计日志文档,未发现将数据库作为审计目标的选项;
  • 尝试参考相关方案从Blob存储导入SQL数据库;
  • 了解到Azure Active Directory审计日志提供API接口;
  • 尝试使用微软专用SQL函数sys.fn_xe_file_target_read_file加载审计日志;
  • 尝试编写连接SQL与Azure的Transact-SQL代码,但未成功。

关于直接在数据库中获取审计日志的疑问与解答

疑问

审计事件由数据库生成,为何不能直接访问内存中的日志,而非要先导入文件?

解答

审计事件会存储在无法写入数据库表的缓冲区中(该设计主要是为了避免影响数据库性能),因此无法在日志写入Blob存储前直接访问。虽然可以通过会话监控的方式重建审计日志,但实现难度较高。此外,Azure数据库审计生成的.xel(Extended Events)文件为二进制XML格式,必须借助微软提供的工具才能读取。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.15 02:51:03