PowerBI应用RLS后的全局排名问题

15

秋天已成故事,冬天还是风景


RLS,行级别权限控制前面已经介绍过,相信大家已经很熟悉了,在应用RLS后,每个用户只能看到自己权限内的数据这是毋庸置疑的,可是,这往往也会带来一些问题,比如某个人只有上海的数据权限,但是他也需要看到全国的总完成情况,那应该怎么做呢?

 这种时通常是新建一张全国数据的计算表,不受权限控制,然后不同权限的不同用户就都能看到全国的完成情况了。

 那么,又有一种情况,排名呢?不同角色进来后看到的仍然是全国数据的排名,但看到不非权限下地区的具体数值。同样地可以通过写计算表来实现,但是今天来介绍另外一种方案。

 先来看数据模型,模型比较简单,只有三张表

15

秋天已成故事,冬天还是风景


RLS,行级别权限控制前面已经介绍过,相信大家已经很熟悉了,在应用RLS后,每个用户只能看到自己权限内的数据这是毋庸置疑的,可是,这往往也会带来一些问题,比如某个人只有上海的数据权限,但是他也需要看到全国的总完成情况,那应该怎么做呢?

 这种时通常是新建一张全国数据的计算表,不受权限控制,然后不同权限的不同用户就都能看到全国的完成情况了。

 那么,又有一种情况,排名呢?不同角色进来后看到的仍然是全国数据的排名,但看到不非权限下地区的具体数值。同样地可以通过写计算表来实现,但是今天来介绍另外一种方案。

 先来看数据模型,模型比较简单,只有三张表

 基础度量如下

“`dax

Sales = SUM( ‘FactSales'[sales])


Rank by Province base =

RANKX( ALL( ‘DimProvince'[province] ), [Sales])

“`

新建一个角色 

查看效果会发现只能查看河南的数据,又因为因能查看河南的数据,所以排名是1

为了实现我们想要的效果,我们需要做一些改变

去掉双向安全筛选

新增一个辅助列,前面模型其实已经加好

这时再来查看效果,仍然无法得到我们想要的结果,继续下一步操作

修改度量值,页面添加筛选器,这时我们就可以得到想要的结果了

Rank by Province =RANKX(   ALL( 'DimProvince'[province] ),   CALCULATE( [Sales], ALL( 'DimUser'[index] )))




PowerBI权限管理进阶

PowerBI权限控制入门篇


本篇文章来源于微信公众号: PowerBI木小桼

类似文章

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注