数据权限设计思路_产品权限设计——首先区分功能权限和数据权限

本文探讨了2B产品中的权限管理系统,重点在于区分功能权限和数据权限。功能权限通过RBAC模型实现,降低操作复杂度;数据权限与企业组织架构相关,涉及数据的查看和管理范围。同时,文章还讨论了跨模块数据使用的权限问题,以及如何处理用户间的层级关系。
摘要由CSDN通过智能技术生成

产品权限设计——首先区分功能权限和数据权限

权限管理系统是2B类产品必不可少的产品功能,牵涉整个产品的使用。权限管理功能不同的客户组织架构是完全不同的,功能的复用性很低,如何设计出高质量的权限管理功能是验证B端产品易用性的重要指标。

我们一般说权限的时候是在说功能权限和数据权限。功能权限指用户登陆系统后能看到什么模块,能看到哪些页面,而数据权限指的是用户在某个模块里能看到几条数据,能看到哪些数据。

功能权限

在企业系统中,通过配置用户的功能权限可以解决不同的人分管不同业务的需求,但是如何实现快速配置?功能的粒度是模块级的还是页面级的还是更细粒度的?跨模块操作时没权限怎么办?

9f22c6147088473d22b73adab8fdfa87.png

图1-1

RBAC模型

说到功能权限不得不说RBAC(Role Based Access Control)模型,它的中文是基于角色的访问控制,主要是将功能组合成角色,再将角色分配给用户,也就是说角色是功能的合集。RBAC有多个成员,但是基础的RBAC0就足够我们涉及的系统使用了。

为什么要引入这个模型呢?请看以下的例子:

企业A一共有12个功能,需要创建100个用户,这些用户中有管财务的、有管人事的、有管销售的等等。如果不引入RBAC模型,我们需要每创建一个用户就要分配一次功能,至少(每个用户只有一个功能)操作100次,如果人数增加到1000甚至10000,并且一个用户可能会有多个功能的时候,操作会非常繁琐,如图:

62da14cc162024d8b7beebcb1085c186.png

图1-2

经过多次操作发现:分配给某些人的功能都是相同的,比如分配给A、B等10个用户的功能都是客户管理、订单管理及供应商管理这几个模块,那是不是可以把这几个功能模块打成一个包整体分给需要的用户呢?

这个包就叫做角色。由于角色和功能的对应关系相对固定,给用户分配权限的时候只分配角色即可。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值