Power BI 基于用户身份实现列级访问权限设置咨询
Power BI 不同用户可见不同列的安全配置方案
本需求为典型的列级别权限控制场景,无需使用过滤器,通过Power BI原生的**对象级安全性(OLS, Object Level Security)**即可实现,具体操作步骤如下:
前置说明
对象级安全性是Power BI数据集层面的安全控制能力,配置后会直接对用户可见的列/表范围生效,不会影响报告的视觉对象逻辑,完全符合你的需求。
操作步骤
步骤1:在Power BI Desktop创建自定义角色
- 打开报告文件,点击顶部菜单栏「建模」选项卡,选择「管理角色」
- 新建2个自定义角色:
受限列访问角色:对应ANTHONY的访问权限全列访问角色:对应CHARLES的访问权限
步骤2:配置角色的列可见权限
在「管理角色」面板的表结构列表中,找到存放COLUMN1、COLUMN2、COLUMN3的业务表:
- 针对
受限列访问角色:勾选COLUMN2、COLUMN3后方的「隐藏」选项,仅保留COLUMN1可见 - 针对
全列访问角色:不对该表的任何列设置隐藏规则,保留全部三列可见 - 配置完成后点击「保存」
步骤3:发布报告并在服务端分配角色成员
- 将配置完成的报告发布到对应Power BI工作区
- 进入工作区的「数据集」列表,找到对应数据集,点击「更多选项」>「安全性」
- 在角色管理页分别给两个角色添加成员:
- 将
ANTHONY@BUSINESS.COM添加到受限列访问角色的成员列表 - 将
CHARLES@BUSINESS.COM添加到全列访问角色的成员列表
- 将
- 点击「保存」完成配置
步骤4:验证权限效果
分别使用两个账号访问Power BI应用内的报告:
- ANTHONY登录时,矩阵视觉对象仅会展示COLUMN1,COLUMN2、COLUMN3默认完全隐藏
- CHARLES登录时,矩阵会正常展示全部三列数据
拓展优化方案
如果你后续需要管理的用户数量较多,不想手动创建大量角色,可以通过Tabular Editor工具配置动态对象级安全性,通过DAX表达式
USERPRINCIPALNAME()匹配预先导入的用户-权限映射表,自动判断当前登录用户的可见列范围,无需逐个创建静态角色。
内容的提问来源于stack exchange,提问作者margo1395
相关产品推荐
相关产品推荐

