文/陆文捷
物流供应链优化分析师,Power BI爱好者
知乎:Beethovenist
LinkedIn主页:https://www.linkedin.com/in/jackson-lu-wen-jie-ba943224/
针对不同用户的数据查看权限,设置行级别安全性 (RLS) 是 Power BI 报告在企业应用场景下经常需要用到的特性;在去年 2 月份迭代中也增加了列级别安全性 (OLS) 的功能,可以借助外部插件 Tabular Editor 进行编辑,参考官方文档:
https://powerbi.microsoft.com/zh-cn/blog/object-level-security-ols-now-available-for-public-preview-in-power-bi-premium/
可是在实际应用中,如果用户对某些数据源的字段没有访问权限,那么就无法正常浏览报表中引用到相关数据的视觉对象,类似这样的报错:上述方式虽然实现了列级别的数据安全性,但从用户体验角度实在说不上友好,并且视觉对象中一旦出现无浏览权限的数据,所有计算指标就都无法显示,不够灵活。最近新增的字段参数这一重要功能可以克服上述问题,接下来以一个实例来看下如何实现~
以PowerBI星球的案例数据做个简单的模型如下,由产品维度表和订单事实表构成:
以收入、毛利度量值和产品维度表的产品名称新建字段参数:毛利 = SUM ( '订单'[毛利] )
收入 = SUM ( '订单'[销售额] )
新建表格视觉对象,用字段参数表的可见字段作为列即可展示相关数据:[字段参数] = "产品名称" || [字段参数] = "收入"
回到报表页,选择以 Guest 的角色预览数据,此时表格中的收入一列就消失了,但是产品名称和收入数据依旧可见:至此,利用字段参数功能生成的表,结合行级别安全性的设置,就十分灵活地实现了列级别安全性功能,用户也感知不到报表层面的报错信息,相比原生的 OLS 更为友好。不过,这样的方法也有其代价,当报表的数据量比较大,会耗费较多的计算时间;本案例的列级别安全性条件较为简单,实际使用场景中会存在各种字段交替组合的情形,此时在设置角色权限时的 DAX 代码也相应变得复杂,部署使用前需要斟酌方案的灵活度、维护成本和用户体验。参考文章:https://blog.crossjoin.co.uk/tag/row-level-security/数据来源:后台发送关键字“PowerBI星球案例数据”获取
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请
点击举报。