适用于:SQL 分析终结点和 Microsoft Fabric 中的数据仓库✅
Fabric 数据仓库中的审核功能通过跟踪和记录数据库事件来增强安全性和合规性功能。
使用 SQL 审核日志,可以监视数据库活动、检测潜在的安全威胁,并通过维护关键操作的审核线索来满足合规性要求,例如:
- 身份验证尝试和访问控制更改
- 数据访问和修改操作
- 架构更改和管理活动
- 权限更改和安全配置
重要
默认情况下,SQL 审核日志已“关闭”。 具有审核查询权限的用户必须启用它才能捕获日志。
若要开始,请查看 如何在 Fabric 数据仓库中配置 SQL 审核日志的步骤。
存储
SQL 审核日志在静态加密并存储在 OneLake 中。
对于 Fabric 数据仓库,审核日志将写入 OneLake .XEL 中仓库 审核文件夹中 存储的文件。
具有以下 角色 的用户可以访问审核文件夹:
- 工作区 管理员
- 工作区 成员
- 工作区 参与者
- 具有“读取所有”权限的工作区查看器
这些用户可以:
- 浏览审核文件夹
- 查看由 SQL 审核生成的审计文件
.XEL - 复制文件以供脱机分析
- 使用 SQL Server Management Studio(SSMS)等工具打开文件
还可以通过 sys.fn_get_audit_file_v2通过 T-SQL 查询审核日志。
有关说明,请参阅如何在 Fabric 数据仓库中配置 SQL 审核日志。
小提示
在 Microsoft Fabric 数据仓库中配置审核日志可能会增加存储成本,具体取决于记录的操作组和事件。 仅启用所需的事件以避免不必要的存储成本。
Performance
SQL 审核日志功能针对正在审核的数据库的可用性和性能进行了优化。 在活动非常频繁或网络负载非常高的时期,审计功能可能允许事务继续进行,而不记录所有标记为审核的事件。
权限
用户必须具有 “审核”查询(审核) 权限才能配置和查询审核日志。
- 默认情况下,工作区管理员具有对工作区中所有项的审核查询权限。
- 管理员可以通过“共享”对话框向其他用户授予审核查询权限。
工作区管理员可以使用 Fabric 门户中的共享菜单选项向项授予审核查询权限。 若要验证用户是否具有审核查询权限,请检查管理权限设置。
在仓库项目中,选择“ 共享 ”按钮。
或者,在 Fabric 门户中的工作区中。 选择仓库项的
...上下文菜单,然后选择“ 管理权限”。在“ 授予人员访问权限 ”窗格中,你可以向用户授予权限。
使用 T-SQL 权限查询审核日志
用户还可以通过授予 VIEW DATABASE SECURITY AUDIT 权限来使用 T-SQL 权限查询审核日志,即使他们没有工作区管理角色也是如此。
授予以下权限后,用户可以使用该 sys.fn_get_audit_file_v2 函数查询审核日志:
GRANT VIEW DATABASE SECURITY AUDIT TO [user];
小提示
该 VIEW DATABASE SECURITY AUDIT 权限仅授予查询审核日志的功能,不允许 访问文件或用户执行任何审核配置修改。
数据库级别审核操作组和操作
为了使审核日志配置更易于访问,Fabric 门户使用友好名称来帮助非 SQL 管理员和其他用户轻松了解捕获的 Fabric 数据仓库事件。
Fabric 将这些友好名称映射到基础 SQL 审核操作组。 使用下表作为参考。
| 友好名称 | 操作组名称 | 说明 |
|---|---|---|
| 对象已被访问 | DATABASE_OBJECT_ACCESS_GROUP |
记录对数据库对象(如消息类型、程序集或协定)的访问。 |
| 对象已更改 | DATABASE_OBJECT_CHANGE_GROUP |
记录对数据库对象的 CREATE、ALTER 或 DROP 操作。 |
| 对象所有者已更改 | DATABASE_OBJECT_OWNERSHIP_CHANGE_GROUP |
记录数据库对象的所有权更改。 |
| 对象权限已更改 | DATABASE_OBJECT_PERMISSION_CHANGE_GROUP |
记录对数据库对象的 GRANT、REVOKE 或 DENY 操作。 |
| 用户已更改 | DATABASE_PRINCIPAL_CHANGE_GROUP |
记录数据库主体(用户、角色)的创建、更改或删除。 |
| 用户被冒充 | DATABASE_PRINCIPAL_IMPERSONATION_GROUP |
记录模拟操作(如 EXECUTE AS)。 |
| 角色成员已更改 | DATABASE_ROLE_MEMBER_CHANGE_GROUP |
记录添加到或从数据库角色中删除的登录名。 |
| 用户未能登录 | FAILED_DATABASE_AUTHENTICATION_GROUP |
记录数据库中的失败身份验证尝试。 |
| 架构权限已被使用 | SCHEMA_OBJECT_ACCESS_GROUP |
记录对架构对象的访问。 |
| 架构已更改 | SCHEMA_OBJECT_CHANGE_GROUP |
记录对架构的 CREATE、ALTER 或 DROP 操作。 |
| 已检查架构对象权限 | SCHEMA_OBJECT_OWNERSHIP_CHANGE_GROUP |
记录架构对象所有权的更改。 |
| 架构对象权限已更改 | SCHEMA_OBJECT_PERMISSION_CHANGE_GROUP |
记录对架构对象的 GRANT、REVOKE 或 DENY 操作。 |
| 批处理已完成 | BATCH_COMPLETED_GROUP |
每当任何批处理文本、存储过程或事务管理操作执行完成时,都会引发此事件。 |
| 批次已启动 | BATCH_STARTED_GROUP |
每当任何批处理文本、存储过程或事务管理操作开始执行时,都会引发此事件。 |
| 审核已更改 | AUDIT_CHANGE_GROUP |
每当创建、修改或删除任何审核时,都会引发此事件。 |
| 用户已登出 | DATABASE_LOGOUT_GROUP |
当数据库用户注销数据库时,将引发此事件。 |
| 用户登录 | SUCCESSFUL_DATABASE_AUTHENTICATION_GROUP |
指示主体已成功登录到数据库。 |
数据库级别审核操作
除了操作组,还可以配置单个审核操作来记录特定的数据库事件:
| 审核操作 | 说明 |
|---|---|
SELECT |
记录指定对象的 SELECT 语句。 |
INSERT |
记录指定对象的 INSERT 操作。 |
UPDATE |
记录指定对象的 UPDATE 操作。 |
DELETE |
记录指定对象的 DELETE 操作。 |
EXECUTE |
记录存储过程或函数的执行。 |
RECEIVE |
记录对 Service Broker 队列的 RECEIVE 操作。 |
REFERENCES |
记录涉及外键约束的权限检查情况。 |
局限性
- 默认工作区不支持 SQL 审核日志。
- 仓库快照不支持 SQL 审核日志。
重要
审核日志存储在 OneLake 的仓库项目中。 如果删除仓库,则还会删除关联的审核日志文件,并且无法再访问它们。
若要保留审核日志以实现合规性或调查目的,请将 .XEL 文件复制到其他存储位置,然后再删除仓库。
SQL 分析端点限制
审核 SQL 分析终结点时,以下限制适用:
- 未捕获 DML 操作。 审核不会记录
INSERT、UPDATE、DELETE和MERGE等操作,因为 Lakehouse 表的数据操作是通过 Lakehouse 运行环境进行的,而不是通过 SQL 分析接口。 - 目前不支持直接访问审核文件夹。 用户无法从 Lakehouse 审核文件夹浏览或下载基础
.XEL审核文件。
你仍然可以使用 T-SQL 函数 sys.fn_get_audit_file_v2查询 SQL 分析终结点的审核事件。