PowerBI权限管理进阶

先来回顾下在上篇文章时留下的问题,一个公司内部有很多业务员,分别归属于不同人的经理,现在要求业务员只能看到自己的数据,但是经理可以看到下面所有业务员的数据。

我们先来分析下这个问题,这个问题其实就是传播链路的问题,借用百科的组织架构图来看可能会更清楚些,比如账务审计部所在的链路就是:公司总裁办>总经理>常务副总>财务审计部,他之前的所有组织都有应该有权限看到他下面所有的数据。如果我们再给这条传播链路中的每个角色一个唯一编号,比如上面的链路是1>2>3>4。

这个思路我们可以在PowerBI中应用,我们需要先构造一张组织架构表


其中层级为计算列,这里主要用到了PATH这个函数,详细用法见PATH – DAX Guide,公式如下:
层级 = PATH('权限控制'[业务员编码], '权限控制'[主管编码] )
和原先的业务人员表建立双向关系

接下来是角色权限的控制,我们只需要去控制权限控制表就好了。PATHCONTAINS的详细用法见PATHCONTAINS – DAX Guide
PATHCONTAINS ('权限控制'[层级],  MAXX(    FILTER('权限控制', '权限控制'[邮箱]= USERPRINCIPALNAME()    ),'权限控制'[主管编码]  ))

接下来我们通过实际效果来解释这段代码

相信看到效果后,代码已经不用解释了,上述代码作用很简单把包含当前查看者编码的所有记录都筛选出来。


总结



我们在工作中遇到的实际情况肯定要比文章中的要复杂的多,有时因为模型的限制,我们写起起来可能要更复杂的多,但是遇到问题时不要怕,静下心来仔细想想怎么把那未知的问题转换为我们已知的问题,一步步拆解,可能就会变得相对来说容易些。



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

类似文章

发表回复

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