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

如何为Power BI分页报表配置与Azure Analysis Service一致的Azure AD行级别安全性(RLS)?

我来帮你搞定这个问题——其实Power BI分页报表完全可以复用Azure Analysis Services(AAS)里基于AAD配置的RLS规则,不需要额外在分页报表里重复造轮子,关键是把几个配置环节做对,一步步来:

实现Power BI分页报表继承AAS的AAD基RLS

核心逻辑是让分页报表直接依赖AAS的权限体系,所有的RLS检查都在AAS层面完成,分页报表只负责传递用户身份并获取过滤后的数据。

1. 确保分页报表用直连模式连接AAS

  • 必须让你的Power BI分页报表采用直接连接方式访问AAS模型,而不是导入数据。只有直连模式下,分页报表才会实时从AAS拉取数据,自动触发AAS的RLS规则检查。
  • 在分页报表的数据源设置里,选择「Azure Analysis Services」类型,输入你的AAS服务器地址和目标模型名称即可。

2. 配置身份验证实现权限传递

这是最关键的一步,要保证用户的AAD身份能正确传递到AAS:

  • 在分页报表的数据源凭据配置中,选择**「使用当前用户的身份验证」**(也就是身份直通)。这样用户打开分页报表时,会自动用自己的AAD账号去连接AAS,AAS会立刻应用对应的RLS角色规则。
  • 补充:如果分页报表发布到Power BI服务,不需要额外配置网关(Power BI服务和AAS都是Azure原生服务,支持直接的AAD身份传递),只要用户的AAD账号同时有权限访问Power BI报表和AAS模型就行。

3. 确认AAS角色的有效性

  • 先检查你在AAS中创建的基于AAD的角色:确保目标用户/组已经被添加到角色成员中,且RLS的DAX过滤规则是正确的(比如[Department] = USERPRINCIPALNAME()这类关联用户身份的表达式)。
  • 你可以在SSMS里连接AAS,用TESTROLE函数验证角色是否生效,比如运行以下DAX代码模拟用户身份:
    EVALUATE
    TESTROLE("YourAASRoleName", SELECTCOLUMNS('YourTable', "FilteredColumn", 'YourTable'[FilteredColumn]))
    
    确认返回的是符合该角色权限的数据。

4. 发布分页报表并配置Power BI服务权限

  • 把分页报表发布到Power BI服务后,在报表的「Manage permissions」中添加对应的AAD用户/组,赋予「View」或更高权限。
  • 注意:不需要在Power BI服务里给分页报表单独配置RLS,所有权限控制都由AAS的角色来完成。

5. 测试验证

  • 用不同权限的用户账号登录Power BI服务,先打开主报表,点击跳转按钮进入分页报表,检查显示的数据是否符合该用户在AAS中的RLS规则。
  • 如果数据不对,优先排查:分页报表是不是直连模式?用户是否在AAS角色的成员列表里?身份验证是不是选了当前用户?

常见坑点排查

  • 若遇到「权限不足」错误:确认用户的AAD账号同时在Power BI报表权限列表和AAS角色成员里,且两个地方的身份完全一致(比如邮箱拼写正确)。
  • 若分页报表显示全量数据:检查是不是不小心用了导入模式连接AAS——导入模式会把数据复制到分页报表里,不会触发AAS的RLS。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.29 21:28:11