老司机的权限系统设计

262 阅读2分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第8天,点击查看活动详情

背景

今天公司需要一个后台管理系统,鉴于来了几个新人,需要培养一下,便把这个后台管理系统的设计工作交给了其中一个号称老司机的程序员!

什么是权限

权限就是资源的集合体,这里的资源就是我们软件系统中所用到的内容,即对页面的跳转、页面的操作权限、页面上对数据的增删改查操作,举例如下图所示:

image.png

如上图,拥有菜单管理、角色管理、用户管理、系统设置、日志管理、Banner管理、文章管理、通知管理这几个页面,对于这几个页面的访问以及页面上的按钮是否能够显示、点击,这些都是属于权限。

数据库设计

一共五张表,分别为: 用户表、角色表、菜单权限表、用户角色关联表、角色菜单权限关联表

设计图如下:

image.png

RBAC

从表结构设计及pdm中我们可以看出这是典型的RBAC

RBAC(用户角色权限控制),通过角色关联用户,角色关联菜单权限,用这种方式间接的赋予了用户权限。

在我们系统当中,通常会出现多个用户具有相同权限的问题,那么在分配的时候我们就要对用户分配权限,修改的时候要对多个用户做分配权限的修改,当我们有了角色作为中间桥梁,我们只需要修改角色对应的权限即可完成修改一次,多处关联服用即可,这样大大减少了权限的漏洞发生几率!

这里设计的就很典型,对于一个普通的后台管理功能的权限足够用了

我们这里介绍的RBAC很笼统,它可以细分好几种,后面用到会给大家详细展开讲解!

欢迎大家留言交流,也希望大家关注我的公众号《coder练习生》