我之前写过一篇关于权限设计整理思路的文章。 权限设计的难点其实在于数据管理。 最近正好在做一个项目,可以和大家分享一下我设计数据权限的经验。 我希望它能给你一些东西。 帮助
数据权限使用场景分析
所有产品工作均基于实际使用场景。 没有场景支撑的设计方案肯定是没有根据的; 功能权限大家都很容易理解。 功能权限分配增、删、改、查页面的操作功能; 数据权限有点难以理解; 我们以最后一张组织结构图为例,如下图1所示。 一般来说音乐,大型集团公司的组织架构比较长,有同级部门和上下部门,员工也有上下级关系。 可能会出现大家都在做同样的事情,但事情的范围却不一致的情况。 我们可以用财务功能来举例; 集团财务部-各城市财务部-各校区财务组之间形成三级关系。 我们使用财务数据来分析
从组织维度来看rbac角色权限表设计,每个平行维度都有这样的需求;
1:集团财务总监需要能够看到集团的财务数据
2:每个城市的金融功能需要能够看到该城市的金融数据
3、各校区的财务需求可以在各校区的财务数据中看到。
如果存在并行维度的群组,例如财务群组中有多个群组成员,每个成员只想看到自己的数据,而群组负责人可以看到所有群组成员的数据。 同时,也会遇到非财务职能的管理。 职能人员也需要看财务数据
1:个人数据,财务会员只能看到与自己相关的数据
2:群内数据,您可以查看您所负责的群内成员的所有数据;
3:区域领导可以看到整个区域的数据
图1
图二
因此,一般来说,数据权限不仅要满足组织结构各平行纬度的数据权限需求,还需要满足各平行纬度成员的数据权限需求; 用户群体数量划分:校园用户>城市中级用户>团体用户
数据权限设计方案
用户数背景为校园用户>城市中级用户>团体用户,因此我们可以首先考虑校园用户,并给出平台用户的背景描述:如下图
平台用户须知(第一期不考虑团体用户)
A:创建用户时授权用户的数据权限
佩戴用户
B:用户登录系统时显示的操作数据范围不同。
1:机构(城市)内的用户登录系统时,会根据用户的数据权限在右侧添加数据过滤,优先考虑校园内的用户。
组织内账户
2:如果您拥有跨机构账户,我们会进行此类操作数据的设置;
异地账户
3:组内数据实现比较简单,这里不再赘述;
4:这样我们就可以对整体平台页面进行分类,如下游戏策划,这样数据权限和页面就可以有对应关系rbac角色权限表设计,用户使用的时候可以只考虑自己的场景。
页面分类
数据权限设计的思考
1:数据权限专门与账户或角色绑定。 这里简单分析一下。
直接绑定账号
根据角色间接绑定账号
从两张图中我们可以清楚地看到,相比于直接账号绑定,基于角色的间接账号绑定对页面的影响更加广泛。 这其实不符合我们的使用场景。 例如,对于某个用户,他只负责集团内的某个业务模块,只负责某个城市的其他业务模块。 这种直接绑定账户的方式无法满足其需求。 通过将数据权限与角色绑定,我们可以实现点对点的权限。 赋予手术灵活性;
2:数据权限可以和用户类型绑定吗?
和用户类型
这是我目前发现的表的数据权限设计较差的地方。 与用户类型绑定会导致单个用户在系统中只有一种用户类型。 事实上,用户类型可能有多种。 如果说有销售的可能性的话,那就是营销和销售。 用户类型绑定使得数据权限不灵活,增加了代码实现的难度。
以上就是我对如何设计数据权限的总结和分析。 仅供您参考。 我希望它能对您的工作有所帮助。 也希望大家多多提供意见,指出不足之处。 感谢您的阅读!