适用于:Microsoft Fabric 中的✅ 仓库
Fabric 数据仓库中的审核功能通过跟踪和记录数据库事件来增强安全性和合规性功能。
可以在 Fabric 门户中或通过 REST API 在 Fabric 数据仓库中配置 SQL 审核日志 。
先决条件
- 具有活动容量或试用容量的 Fabric 工作区。
- 你应该有权访问工作区中的仓库项。
- 用户必须具有“审核权限”才能配置和查询审核日志。 有关详细信息,请参阅权限。
可以使用 Fabric 门户 或通过 REST API 配置 SQL 审核日志。
在 Fabric 工作区中,选择仓库项 的设置 。
选择 “SQL 审核日志 ”页。
启用“ 将事件保存到 SQL 审核日志”设置。
默认情况下,所有操作都会启用并保留 9 年。
可以配置 SQL 审核日志将在要 记录的事件下捕获哪些事件。 选择希望捕获的事件类别或单个审核操作组。 仅选择组织需要的事件来优化存储和相关性。
在“年”、“月”和“天”中指定所需的日志保留期。
选择 “保存” 以应用设置。
仓库现在将记录所选的审核事件,并将日志安全地存储在 OneLake 中。
下载并安装 Visual Studio Code。
从 Visual Studio Marketplace 安装 REST 客户端扩展。
使用以下步骤获取持有者令牌。 可以在 浏览器的开发人员工具 中或通过 PowerShell 找到 Power BI 持有者令牌。
若要使用 Edge 开发人员工具查找 Power BI 持有者令牌,请执行以下作:
- 在浏览器中打开 Microsoft Fabric 工作区(Microsoft Edge)。
- 按 F12 打开开发人员工具。
- 选择“控制台”选项卡。如有必要,选择“展开快速视图”以显示控制台提示符
>。
- 输入命令
powerBIAccessToken,然后按 Enter。 右键单击控制台中返回的大型唯一字符串,然后选择 “复制字符串内容”。
- 将其粘贴到以下脚本的“
<bearer token>”处。
若要使用 PowerShell 查找 Power BI 持有令牌,请执行以下操作:
通过MicrosoftPowerBIMgmt 安装 模块。
Install-Module -Name MicrosoftPowerBIMgmt
使用 Connect-PowerBIServiceAccount 连接到 Power BI PowerShell,并检索持有者令牌。
Connect-PowerBIServiceAccount
$token = (Get-PowerBIAccessToken).Authorization
Write-Output "Bearer $token"
获取 Power BI 持有者令牌后,可以使用 REST 客户端扩展发送 PATCH 请求。 在 VS Code 中创建一个带有 .http 扩展名的新文本文件。
复制并粘贴以下查询:
PATCH https://api.fabric.microsoft.com/v1/workspaces/<workspaceId>/warehouses/<warehouseId>/settings/sqlAudit
content-type: application/json
Authorization: Bearer <BEARER_TOKEN>
{
"state": "Enabled",
"retentionDays": "0"
}
- 将
<workspaceId> 和 <warehouseId> 替换为相应的 Fabric 工作区 ID 和仓库 ID。 若要查找这些值,请通过 Fabric 门户访问你的仓库。
-
<workspaceID>:在 /groups/ 节后的 URL 中查找工作区 GUID,或者通过在现有仓库中运行 SELECT @@SERVERNAME 来查找。 例如,11aaa111-a11a-1111-1aaa-aa111111aaa。 不要包含 / 字符。
-
<warehouseID>:在 /warehouses/ 部分后的 URL 中查找仓库 GUID,或者通过在现有仓库中运行 SELECT @@SERVERNAME 来查找。 例如,11aaa111-a11a-1111-1aaa-aa111111aaa。 不要包含 / 字符。
- 将
<BEARER_TOKEN> 替换为你的持有者令牌。
- 将
state 设置为“已启用”会激活审核 (使用“已禁用”将其关闭)。
- 默认情况下,
retentionDays 参数设置为 0 ,以便无限期保留。
重要
在扩展示例代码中,在提供持票者令牌后,必须立即添加一个空行。 此空行向 HTTP 标头结束和 API 命令正文开始的扩展发出信号,使扩展能够正确区分这两者。
选择“发送请求”。
使用 REST API 检查审核日志状态
若要验证 SQL 审核日志是否已启用,请使用同一 REST 客户端扩展发送 GET 请求。
- 在 VS Code 中创建一个带有
.http 扩展名的新文本文件。
- 复制并粘贴以下请求,提供你的
workspaceId、<warehouseId>和<BEARER_TOKEN>。
GET https://api.fabric.microsoft.com/v1/workspaces/<workspaceId>/warehouses/<warehouseId>/settings/sqlAudit
content-type: application/json
Authorization: Bearer <BEARER_TOKEN>
响应会返回ENABLED或DISABLED,以及auditActionsAndGroups的当前配置。
SQL 审核日志依赖于预定义的操作组,该组会捕获数据库中的特定事件。 有关审核操作组的详细信息,请参阅 Fabric 数据仓库中的 SQL 审核日志。
在 VS Code 中创建一个带有 .http 扩展名的新文本文件。
复制并粘贴以下请求,提供你的workspaceId、<warehouseId>和<BEARER_TOKEN>。
POST https://api.fabric.microsoft.com/v1/workspaces/<workspaceId>/warehouses/<warehouseId>/settings/sqlAudit
content-type: application/json
Authorization: Bearer <BEARER_TOKEN>
[ "DATABASE_OBJECT_PERMISSION_CHANGE_GROUP" ]
选择“发送请求”。
查询审核日志
SQL 审核日志数据存储在 OneLake 中的 .XEL 文件,只能使用 sys.fn_get_audit_file_v2 Transact-SQL (T-SQL) 函数进行访问。 有关如何在 OneLake 中存储审核文件的详细信息,请参阅 Fabric 数据仓库中的 SQL 审核日志。
在 SQL 查询编辑器或任何查询工具 (例如 SQL Server Management Studio (SSMS) 或使用 Visual Studio Code 的 mssql 扩展) 中,使用以下示例 T-SQL 查询,并提供你的 workspaceId 和 <warehouseId>。
SELECT *
FROM sys.fn_get_audit_file_v2
('https://onelake.blob.fabric.microsoft.com/<workspaceId>/<warehouseId>/Audit/sqldbauditlogs/'
, default, default, default, default);
若要按时间范围筛选日志,请使用以下查询:
SELECT *
FROM sys.fn_get_audit_file_v2
('https://onelake.blob.fabric.microsoft.com/<workspaceId>/<warehouseId>/Audit/sqldbauditlogs/'
, default, default, '2025-03-30T08:40:40Z', '2025-03-30T09:10:40Z');
相关内容