如何在Azure Analysis Services中实现动态RLS,让员工仅查看自身销售数据
具体操作步骤
- 第一步:确认表关联关系
确保Sales事实表与Employees维度表已基于员工唯一标识字段(如员工ID)建立正确的一对多关联,关联方向设置为单方向或双向均可,保证维度表的筛选可以传递到事实表。 - 第二步:创建专属RLS角色
在你的AAS表格模型项目中(可通过Visual Studio、Tabular Editor等工具打开),新建一个权限为「读取」的角色,可命名为员工销售数据查看角色。 - 第三步:添加动态筛选规则
给Employees维度表添加如下DAX筛选表达式:Employees[email] = USERPRINCIPALNAME()
该表达式会自动匹配当前登录用户的Azure AD邮箱(即PBI登录账号)与Employees表的email字段,仅返回当前登录用户对应的员工记录,关联的Sales表会自动被筛选出该员工对应的销售数据。 - 第四步:本地验证规则
使用模型工具自带的「以角色身份查看/分析」功能,输入不同员工的邮箱测试,确认返回的销售数据仅对应当前测试用户,筛选逻辑符合预期。 - 第五步:部署模型并授权
测试通过后将更新后的表格模型部署到你的Azure Analysis Services实例中,随后在AAS角色成员管理中,将所有需要查看报表的员工账号添加到刚才新建的员工销售数据查看角色中即可。
注意事项
- 需保证Employees表中存储的email字段值与员工Azure AD的用户主体名称(UPN)完全一致,大小写也需匹配,避免出现匹配失败的情况。
- 后续新增员工仅需要在Employees表中维护该员工的信息、同时将其账号添加到RLS角色中即可,无需修改RLS筛选规则。
- 所有基于该AAS模型创建的Power BI报表都会自动继承RLS权限规则,无需在单张报表中单独配置权限。
内容的提问来源于stack exchange,提问作者adnane
相关产品推荐
相关产品推荐

