POWERBI是可以实现行级别权限以及页面级别权限的,本文主要介绍行级别权限。
一、数据模型
数据模型如下:

我们希望实现的场景是根据人员所归属的区域不一致,实现不同的人员所能看到的数据量是不一样的。
先来理清下思路,大致有2种方式:第一种,建立各个区域为单独的权限组,在前台把人员配置到这些权限组里,达成权限限制;第二种,建立账号体系,利用powerbi的username函数获取人员的账号,从而获取人员的所属区域,达到我们的权限配置。
二、实践
1、静态权限设置
该类权限并不会随着数据的动态获取而发生变化,一些固定不太会变化的权限控制比较适合用该类方式来做,比如某些用户只会看某个省份的数据,且后期不会再有变动。该类权限只要设定好角色之后,在前台配置即可,比较方便。
首先,我们来定义一个角色,这里可以理解为一个组别,浙江省。
然后在前台设置行级权限

没错,就是这么简单,这样权限已经设置完毕。
2、动态权限设置
在设置动态权限时,需要一张账号表来确定进入页面的账号是谁,而这个人具有的权限是什么。比如我们目前的数据中,是有sale_id跟sale_id对应的省份的,那么我们还需要一张表来确定目前的sale_id对应的域控账号是什么(注意,一定要正确的域控账号,别问我走了多少弯路),一般格式都是***@***.**
sale_id以及账号对应表如下,我们去跟用户表的sale_id进行关联

再通过username()函数获取登录员工的账号,通过角色匹配实现数据过滤,从而达到数据权限的控制,如下:
最后在前端配置行级权限

三、小结
静态权限配置与动态权限配置各有优缺点:
静态的配置更加简单,不涉及到域控账号问题,且只要在前台进行增减即可;但是静态权限的可拓展性不强,比如如果权限细化到城市,那整个角色都需要全部重新配置一遍,比较耗时费力。
动态权限控制的自动化让我们只需要更新其中的权限控制表即可,且颗粒度原则上也可以无限拓展,但是动态权限的设置成本比静态的要高,需要解决中间环节的一些账号等问题。
其实2者的设置过程大多是一致的,只是动态使用了username函数获取到了账号从而实现整个动态过程。我们可以根据实际情况来判断使用哪种方式。
最后祝大家设置顺利,不踩坑。
本文详细介绍了如何在PowerBI中实现行级别权限,包括静态和动态设置方法。静态权限适用于固定权限控制,而动态权限则能实现更细粒度的自动化控制,但设置成本较高。通过数据模型和角色分配,可以有效地根据用户区域限制数据访问。
3209

被折叠的 条评论
为什么被折叠?



