You need to enable JavaScript to run this app. Power BI中基于PS_ACCESO_CENTRO表实现动态RLS按登录用户过滤中心数据
优惠活动
大模型
产品
解决方案
定价
更多

Power BI中基于PS_ACCESO_CENTRO表实现动态RLS按登录用户过滤中心数据

完全可以实现,这是动态行级别安全(RLS)的典型适用场景,具体实现步骤如下:

动态RLS实现策略

前置确认

你的表模型中PS_ACCESO_CENTRO表与Centros表已通过Center Code字段建立关联,符合RLS的联动过滤要求,参考模型图如下:
表格连接模型图

步骤1:校验权限表字段格式

  • 确认PS_ACCESO_CENTRO表中存储登录账号的字段值,格式与Power BI服务的用户主体名称(UPN)一致,通常为用户邮箱@企业域名.com格式,如果存储的是域账号,需要提前清洗转换为UPN格式
  • 无需提前删除表内的重复用户记录,RLS逻辑会自动识别同一用户对应的所有中心编码权限

步骤2:创建RLS角色与筛选规则

在Power BI Desktop的「建模」选项卡点击「管理角色」,新建自定义角色(建议命名为中心访问权限角色),选中PS_ACCESO_CENTRO表,输入如下DAX筛选规则:

[存储登录账号的字段名] = USERPRINCIPALNAME()

如果你使用的是本地部署的Power BI报表服务器,可将USERPRINCIPALNAME()替换为USERNAME()适配域账号验证逻辑

步骤3:配置跨表筛选逻辑

有两种可选方案实现PS_ACCESO_CENTRO到Centros表的联动过滤,二选一即可:

  • 方案1:打开两表的关系编辑界面,将筛选方向调整为双向,并勾选「在双向筛选器中应用安全筛选器」
  • 方案2:在RLS角色设置中选中Centros表,新增如下DAX规则:
[Center Code] IN VALUES('PS_ACCESO_CENTRO'[Center Code])

步骤4:效果验证

在Power BI Desktop点击「建模」-「以角色身份查看」,选择创建好的角色,输入测试用户的账号,即可验证是否仅展示该用户有权限的中心数据。
部署到Power BI服务后,需要在数据集的「安全性」设置中,把需要访问报表的用户添加到对应RLS角色中,规则才会正式生效。

扩展提示

你提到的登录状态度量值可以配合RLS做异常提示,例如当用户无任何权限时,返回*您暂无对应中心的访问权限*的提示信息,提升使用体验。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.11 05:54:02