Auditing

适用于:✅Microsoft Fabric 中的 SQL 数据库

在 Fabric 中审核 SQL 数据库是一项关键的安全性和符合性功能,使组织能够跟踪和记录数据库活动。 审核支持合规性、威胁检测和取证调查,帮助回答访问哪些数据、时间和方式等问题。

什么是 SQL 审核?

SQL 审核是指捕获和存储与数据库活动相关的事件的过程。 这些事件包括数据访问、架构更改、权限修改和身份验证尝试。

在 Fabric 中,审核在数据库级别实现,并支持:

  • 合规性监视(例如:HIPAA、SOX)
  • 安全调查
  • 运营洞察

审核目标

审核日志将写入 OneLake 中的只读文件夹,可以使用 T-SQL 函数或 OneLake 资源管理器进行查询 sys.fn_get_audit_file_v2

对于 Fabric 中的 SQL 数据库,审核日志存储在 OneLake 中: https://onelake.blob.fabric.microsoft.com/{workspace_id}/{artifact_id}/Audit/sqldbauditlogs/

这些日志不可变且可供具有适当权限的用户访问。 还可以使用 OneLake 资源管理器或 Azure 存储资源管理器下载日志。

配置选项

默认情况下, 审核所有 选项审核将捕获所有事件,包括:批处理完成和成功和失败的身份验证。

若要更具选择性,请从预配置的审核方案中进行选择,例如: 权限更改和登录尝试数据读取和写入以及/或 架构更改

每个预配置方案映射到特定的审核操作组(例如,SCHEMA_OBJECT_ACCESS_GROUP, DATABASE_PRINCIPAL_CHANGE_GROUP)。 还可以选择要在 “自定义事件”下审核的事件。 高级用户可以选择单个作组来根据自己的需求定制审核。 这非常适合采用严格的内部安全策略的客户。

若要筛选掉常见或已知的访问查询,可以在 Transact-SQL (T-SQL) 中提供谓词表达式,以便根据条件(例如,排除 SELECT 语句)筛选出审核事件: WHERE statement NOT LIKE '%select%'

Permissions

若要使用 Fabric 工作区角色(建议)管理审核,用户必须具有 Fabric 工作区 参与者 角色或更高权限的成员身份。

若要使用 SQL 权限进行审核管理,请按以下步骤操作:

  • 若要配置数据库审核,用户必须具有 ALTER ANY DATABASE AUDIT 权限。
  • 若要使用 T-SQL 查看审核日志,用户必须具有 VIEW DATABASE SECURITY AUDIT 权限。

Retention

默认情况下,审核数据无限期保留。 可以在 此持续时间后自动删除日志 部分中配置自定义保留期。

在 Fabric 门户中配置 SQL 数据库审核

开始对 Fabric SQL 数据库进行审计:

  1. 在 Fabric 门户中导航到并打开 SQL 数据库。
  2. 在主菜单中,选择“ 安全 ”选项卡,然后选择“ 管理 SQL 审核”。 Fabric 门户中的屏幕截图,其中显示了“安全”选项卡和“管理 SQL 审核”按钮。
  3. 此时会打开 “管理 SQL 审核 ”窗格。
  4. 选择“ 将事件保存到 SQL 审核日志 ”按钮以启用审核。
  5. 配置在 “数据库事件” 部分中要记录的事件。 选择 “审核所有内容”(默认值) 以捕获所有事件。
  6. (可选)在 “保留”下配置保留策略。
  7. (可选)将 T-SQL 命令的谓词表达式配置为在 “谓词表达式” 字段中忽略。
  8. 选择“保存”

查询审核日志

可以使用 T-SQL 函数 sys.fn_get_audit_filesys.fn_get_audit_file_v2查询审核日志。

在以下脚本中,需要提供工作区 ID 和数据库 ID。 两者都可以在Fabric门户的网址中找到。 例如: https://fabric.microsoft.com/groups/<fabric workspace id>/sqldatabases/<fabric sql database id>。 URL中的第一个唯一标识符字符串是Fabric工作区ID,第二个唯一标识符字符串是SQL数据库ID。

  • <fabric_workspace_id> 替换为你的 Fabric 工作区 ID。 可以在 URL 中轻松找到工作区的 ID,它是浏览器窗口中 / 后两个 /groups/ 字符内的唯一字符串。
  • <fabric sql database id> 替换为在 Fabric 数据库 ID 中的 SQL 数据库。 你可以在 URL 中轻松找到数据库项的标识符,它是在浏览器窗口中/之后,位于两个/sqldatabases/字符内的唯一字符串。

例如:

SELECT * FROM sys.fn_get_audit_file_v2(
  'https://onelake.blob.fabric.microsoft.com/<fabric workspace id>/<fabric sql database id>/Audit/sqldbauditlogs/',
  DEFAULT, DEFAULT, DEFAULT, DEFAULT );

本示例检索两者之间 2025-11-17T08:40:40Z2025-11-17T09:10:40Z之间的审核日志。

SELECT *
FROM sys.fn_get_audit_file_v2(
    'https://onelake.blob.fabric.microsoft.com/<fabric workspace id>/<fabric sql database id>/Audit/sqldbauditlogs/',
    DEFAULT,
    DEFAULT,
    '2025-11-17T08:40:40Z',
    '2025-11-17T09:10:40Z')

有关详细信息,请参阅 sys.fn_get_audit_filesys.fn_get_audit_file_v2