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

如何获取Power BI所有应用及对应有权限用户的汇总列表

Power BI全量应用及对应访问权限用户清单提取方案

前提条件

你需要持有Power BI租户管理员权限,或配置拥有Tenant.Read.All/Tenant.ReadWrite.All应用级API权限的服务主体,才能调用管理员级别的REST接口拉取全量数据。

实现方案

方案1:REST API组合调用(适合自定义开发场景)

Power BI 提供了管理员专用的应用查询接口,不需要逐个查用户权限,反向遍历所有应用拉取权限即可,步骤如下:

  • 第一步:调用GET https://api.powerbi.com/v1.0/myorg/admin/apps接口,拉取租户内全量应用列表,保存应用ID、应用名称、所属工作区等基础信息作为底表
  • 第二步:遍历底表中的所有应用ID,逐个调用GET https://api.powerbi.com/v1.0/myorg/admin/apps/{appId}/users接口,拉取单个应用对应的所有授权主体(包括用户、安全组、服务主体)的权限信息
  • 第三步:将应用基础信息和对应权限数据做关联合并,即可得到全量应用与权限用户的对应汇总表

注意:如果租户内应用数量较多,调用接口时建议增加1-2秒的请求间隔,避免触发Power BI API每小时5000次的限流规则。

方案2:PowerShell脚本一键导出(适合无开发能力的管理员使用)

先安装Power BI官方管理模块:
Install-Module -Name MicrosoftPowerBIMgmt
运行以下脚本即可直接导出汇总好的权限清单到本地CSV文件:

# 登录Power BI管理员账号
Connect-PowerBIServiceAccount

# 拉取全租户应用列表
$allApps = Invoke-PowerBIRestMethod -Url 'admin/apps' -Method Get | ConvertFrom-Json
$permissionResult = @()

# 遍历拉取每个应用的权限列表
foreach ($app in $allApps.value) {
    $appPerms = Invoke-PowerBIRestMethod -Url "admin/apps/$($app.id)/users" -Method Get | ConvertFrom-Json
    foreach ($perm in $appPerms.value) {
        $permissionResult += [PSCustomObject]@{
            应用ID = $app.id
            应用名称 = $app.name
            授权主体名称 = $perm.displayName
            主体类型 = $perm.principalType
            权限级别 = $perm.role
            用户UPN = $perm.userPrincipalName
        }
    }
    # 规避API限流
    Start-Sleep -Seconds 1
}

# 导出结果
$permissionResult | Export-Csv -Path "PowerBI全量应用权限清单.csv" -Encoding UTF8 -NoTypeInformation

可选补充方案

如果仅需要统计有过访问行为的活跃权限用户,也可以从Power BI统一审核日志中提取历史访问记录匹配应用信息,该方案不需要高频调用API,但无法覆盖已授权但未产生过访问行为的用户。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 09:54:02