管理后台系统

结合RBAC模型讲解权限管理系统需求及表结构创建

2019-11-26  本文已影响0人  字母哥课堂

结合RBAC模型讲解权限管理系统需求及表结构创建

在本号之前的文章中,已经为大家介绍了很多关于Spring Security的使用方法,也介绍了RBAC的基于角色权限控制模型。但是很多朋友虽然已经理解了RBAC控制模型,但是仍有很多的问题阻碍他们进一步开发。比如:

那么本文就希望将这些问题,与大家进行一下分享。

一、回顾RBAC权限模型

上图中:

本文讲解只将权限控制到菜单的访问级别,即控制页面的访问权限。如果想控制到页面中按钮级别的访问,可以参考Menu与RoleMenu的模式同样的实现方式。或者干脆在menu表里面加上一个字段区别该条记录是菜单项还是按钮。

为了有理有据,我们参考一个比较优秀的开源项目界面:若依后台管理系统。

二、组织部门管理

2.1.需求分析

之所以先将部门管理提出来讲一下,是因为部门管理没有在我们上面的RBAC权限模型中进行提现。但是部门这样一个实体仍然是,后端管理系统的一个重要组成部分。通常有如下的需求:

2.2 组织部门表的CreateSQL

以下SQL以MySQL为例:

注意:mysql没有oracle中的start with connect by的树形数据汇总SQL。所以通常需要为了方便管理组织之间的上下级树形关系,需要加上一些特殊字段,如:org_pids:该组织所有上级组织id逗号分隔,即包括上级的上级;is_leaf是否是叶子结点;level组织所属的层级(1,2,3)。

三、菜单权限管理

3.1 需求分析

3.2 菜单权限表的CreateSQL

四、角色管理


上图为角色修改及分配权限的页面

4.1.需求分析

4.2.角色表与角色菜单权限关联表的的CreateSQL

五、用户管理

5.1.需求分析

5.2.sys_user 用户信息表及用户角色关系表的CreateSQL

在用户的信息表中,体现了一些隐藏的需求。如:多次登录锁定与锁定到期时间的关系。账号有效期的设定规则等。

当然用户表中,根据业务的不同还可能加更多的信息,比如:用户头像等等。但是通常在比较大型的业务系统开发中,业务模块中使用的用户表和在权限管理模块使用的用户表通常不是一个,而是根据某些唯一字段弱关联,分开存放。这样做的好处在于:经常发生变化的业务需求,不会去影响不经常变化的权限模型。

推荐:SpringBoot系列精品文章(16章97节), http://springboot.zimug.com

本号只做持续的知识输出,希望您能关注、评论、转发!您的支持是我不竭的创作动力!让知识产生价值、让程序员改变世界!

上一篇 下一篇

猜你喜欢

热点阅读