后台设计之权限管理
权限系统是每位后台产品产品经理绕不过去的问题,好的权限系统可以明确公司内不同人员、不同部门的分工,降低操作风险发生概率,便于管理等优势。笔者曾负责过若干种后台系统的搭建,其中都绕不开“权限管理”,现愿意将我个人经验和工作中所产生的的思考与大家进行分享。
1. 权限系统是什么
一句话概括,我个人认为权限系统就是:明确操作人员可在平台内能做什么。即什么样的人,可以做什么样的事,这并不难理解,我们的用户是所有可以登录该平台的人员。
2. 权限系统应该怎么做
在这笔者先介绍一下“RBAC”结构的含义,所谓RBAC即:权限与角色相关联,用户通过成为适当角色的成员而得到这些角色的权限。
由此可见,通常的权限管理,可分为三个部分及“用户管理”、“角色管理”和“权限管理”三个部分。
通常来说,用户与角色一一对应,一个用户对应一个角色;同一个角色可对应多个后台操作页面;若公司具有多个产品线,那么多个角色对应同一个产品。其结构如下图所示:
有些读者可能会有疑问,如果去掉“角色”概念,直接将用户与权限进行绑定是否可以减轻工作步骤?
表面上看来,如果没有“角色”,也可以为用户分配权限,但仔细思考后,会发现如下问题:
- 若不同用户拥有相同权限,那么后台操作人员将重复配置多次。
- 若用户身份变更,需重新梳理权限。
- 若用户离职,将出现多个无用权限,造成垃圾数据。
综上所述,RBAC结构可通过“角色”搭建用户与权限之间的关系,可在创建角色时绑定相应权限,再匹配到用户,可提高整体的效率以及稳定性。
3. 权限系统三要素
前文已经讲过,权限系统的核心三个功能为:用户、角色和权限,下图为简要的脑图,可辅助理解。
3.1 用户管理
通常企业的后台管理系统,可以同企业内部OA或企业微信等系统间打通,当用新员工入职时,可主动申请后台相应权限,高级管理员(即权限分配者)根据用户的职责,分配具体的角色。若后台系统暂未与系统打通,则需管理员手动创建用户。
用户界面原型图如上所示,该原型内为尚未连接企业OA,需手动创建用户,所有可登录后台的用户都将在表中展示。
添加用户的界面如下图所示:
在创建用户时,需输入用户的基本信息,并直接为用户绑定角色,那么如何设定角色呢?这是我们下一步需要说明的问题。
细心的同学不难发现,上图页面中存在“修改权限”的按钮,该功能的存在是为了避免角色与权限的绑定过于僵化,可针对同一角色在不同用户使用时,进行微调,避免每次都产生新的角色。
3.2 角色管理
角色可由两个维度确认:
- 业务维度
- 等级维度
所谓业务相对来说方便理解,即不同的角色负责不同的功能,例如:配置专员,负责内容物料的配置以及上架;审核专员,负责上架前的审核工作。
等级维度,即超级管理员、普通管理员和XX专员,超级管理员拥有针对所有用户添加角色、添加用户的权限,普通专员只能围绕自身业务进行管理,而专员的权限最弱,只负责基础的执行工作。
业务维度视平台的功能和业务定义,等级维度可按照系统复杂度以及人员架构方向确定。
角色列表同用户列表一样,将展示平台内所有的角色,以及该角色对应的说明、人数以及状态(开启/关闭)。
创建角色的过程中,可为该角色配置相应的权限。可采用双向树结构或列表勾选的方式快速添加。
3.3 权限说明
权限系统,离不开具体的权限,之所以放到最后,是因为权限相比较前面两个元素来说更为复杂。通常后台的权限分为:页面权限、操作权限和数据权限。
- 页面权限:用户是否具备进入/浏览该页面的权限,例如,负责物料上传的运营人员,应有物料上架的页面权限,但无需数据埋点反馈的页面权限。
- 操作权限:在拥有页面权限后,是否可拥有对该页面进行操作的权限。例如,数据专员可以对数据统计后台的报表进行整合、下载等,但无法更改数据统计规则。
- 数据权限:数据权限较比于其他两个权限较为抽象。指的是用户是否有针对某些数据的浏览权限。例如,同一个管理后台内,可看到公司不同产品产品线的下载率、DAU、Crash率等等,但是作为某条产品线的员工,只能看到该产品线的数据,而无法对其他产品线的数据进行观测。
通常页面权限和操作权限将会在权限列表中拉取系统内的所有页面和可进行的操作,通过树状图展示给操作人员,进行配置,而数据权限则需要贴合公司的业务进行分析。
4. 总结
以上就是笔者对于权限系统设计的思考与总结,后台系统的设计,没有绝对的好与坏,也没有DAU、MAU的压力,但是也有自己的独特之处即一定要围绕业务来做,以满足业务为核心,提高效率为目标。
如有机会,后续将会介绍CRM系统以及内容管理CMS系统。
本文由 @Forza 原创发布于人人都是产品经理。未经许可,禁止转载
题图来自 Unsplash,基于 CC0 协议
想问一下admin账号是怎么来的,是后端设置的吗?
数据权限可以和用户直接绑定,功能权限和角色绑定
你好,如果为一个用户添加多个角色,在用户登录时该如何处理呢?合并权限或是角色切换,或者是别的方案?
合并权限,取权限的并集
学到了,写的很好理解。表达棒棒哒
你好,我是做B端ERP系统的,请问一下,数据权限隔离,这个数据权限隔离怎么和用户关联起来,按照我的理解,同一个页面,某些数据你可以看,我看不到,那这些数据前提应该是和用户建立绑定关系,这是我自己的理解,不知道对不对
ERP系统应该是根据业务建立岗位和标准角色,根据岗位来做数据权限的授权吧
角色管理
数据权限如何设计?
同问。
数据权限和页面权限感觉很像
还是有不一样的吧,我的理解是页面权限属于分配页面(栏目),有些栏目只有一定等级的人员可以查看,比如管理人员可以查看统计报表而普通员工无法查看;而数据权限属于对页面内的数据的权限,同一个页面中可能有多类数据,比如业务人员只能查看自己的业务情况,但是管理人员可以查看所有人的业务情况,这个属于同一个页面的不同数据权限划分了。浅薄之见哈
谢谢
数据权限该如何配置?
也很感谢你的这篇文章,第3遍阅读了,对优化公司产品起了很大的作用!
😆
哈哈,承蒙感谢,十分荣幸。大家一起学习哈
也会有不同用户处于同一角色,但数据权限不同的情况
不同用户同一角色 但组织结构不同 权限也就会不同
“通常来说,用户与角色一一对应,一个用户对应一个角色”
——用户与角色大部分情况下不是一 一对应的;一个用户可能会有多个角色,一个角色也可能会有多个用户
实际上,确实是一用户包含多角色,优化之前公司的产品(2B产品),看到用户与角色绑定,角色与权限绑定的设计,无非都是为了图快满足客户的一时需求,而后又不做更新迭代优化,处理起来改动很大。
谢谢您的建议,学习啦
角色可以不断的建,一个用户多个角色,我理解其实可以建立一个角色,把多个角色的权限加进到这一个角色,再给这个用户,绑定这个角色,这样不知行不行
第一篇么,鼓励一下加油。我也是做B端产品的,有兴趣的话,可以一起努力,目前我发布了十篇文章。微信:znc0520 😉
没想到能在这遇到你,之前阅读过你的文章“三年产品经理的转正述职报告”,我也在做智慧校园业务 😉
哈哈哈,我无处不在。可以加个朋友一起学习进步。 😎
用户、角色、权限三者分开,以角色作为桥梁将用户和权限关联起来,这样的配置贼方便
再给权限分个组:预先将权限分好,并设置一批角色,比较方便
再加一个权限转移的功能,解决人员变动带来的权限调整
谢谢您的建议
😳 别这么客气,一起学习,一起成长