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

将Azure SQL Database的.XEL审计日志导入SQL Server遇报错求助

Azure SQL审计日志读取错误的原因及解决方法

核心问题:用错了函数

你遇到的两个错误本质是混淆了两个SQL函数的适用场景:

  • sys.fn_xe_file_target_read_file:仅用于读取本地SQL Server实例生成的扩展事件XEL文件
  • sys.fn_get_audit_file:专门用于读取Azure SQL Database/托管实例生成的审计日志文件(不管是XEL还是CSV格式)

错误拆解

  1. 第一个错误「文件名无效或SQL Server服务账户无权限」
    这是因为你最初存放XEL文件的目录,SQL Server服务账户(通常是NT SERVICE\MSSQLSERVER)没有读取权限。移到SQL Server的DATA文件夹后权限问题解决,但函数不匹配导致第二个错误。

  2. 第二个错误「审计日志需使用fn_get_audit_file函数访问」
    这是系统明确提示:Azure SQL的审计日志格式和本地SQL Server的扩展事件文件不同,必须用专门的审计日志读取函数。

正确操作步骤

  1. 确保审计文件存放在SQL Server服务账户有权限的目录(比如你已经移到的DATA文件夹,这个操作是对的)
  2. 执行以下查询语句读取日志:
    SELECT *
    FROM sys.fn_get_audit_file(
        'C:\Program Files\Microsoft SQL Server\MSSQL16.MSSQLSERVER\MSSQL\DATA\*.xel',
        DEFAULT,
        DEFAULT
    );
    
    • 把路径替换成你实际的XEL文件存放路径,用*.xel通配符匹配所有相关审计文件
    • 后两个DEFAULT参数分别代表起始时间和结束时间,使用DEFAULT会读取文件中所有时间范围的日志

补充注意事项

  • 如果下载的是CSV格式的审计日志,只需把路径中的*.xel改成*.csv即可,函数不变
  • 确保你的本地SQL Server版本在2012及以上,该版本开始支持sys.fn_get_audit_file函数

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.14 17:45:06