小知识,大挑战!本文正在参与“程序员必备小知识”创作活动。
前言
本文针对子系统进行权限设计讲解,目前使用最普遍的权限管理模型正是 RBAC(Role-Based-Acces Control)模型,本文将结合RDBC 与子系统的特殊性对RDBC来进行设计。
一、RBAC概述
RBAC模型是基于角色访问控制的简称,它是在上世纪90年代提出来的新模型。
在RBAC中,有三个基础的组成部分,分别是:用户、角色和权限。
RBAC 通过定义角色的权限,并对用户授权某个角色从而来控制用户的权限,实现了用户和权限的逻辑分离,极大的方便了权限的管理。
它们之间的关系如下:
分别对应数据库中的五张表。当然,这是传统的方式,即角色和权限存在多对多的关系;用户和角色也可以存在多对多的关系。例如一个用户既可以是司机的角色,也可以是扫地员工的角色。通过这两张关系表对三种资源进行绑定。
二、本项目采用的RBAC 设计
这里将介绍下子系统是如何基于 RBAC 模型进行权限设计的。因为子系统是多个电站资源,所以这里就出现了四个资源。但是我们这个系统里一个用户只能属于一个角色,所以就不存在用户角色关系表了。
分别对应六张表。
当在主系统进行分配电站资源目录的时候,同时也会修改角色权限关系表中的子站超级管理员的角色资源。
当子站的超级管理员角色不存在时,就去创建超级管理员角色。然后给这个角色赋予电站权限关系表中同等的权限。
然后在创建管理员的时候判断是否有超级管理员角色,如果没有就提示让它先编辑目标电站资源。
\