管理系统开发技(9):RBAC 权限设计

392 阅读2分钟

小知识,大挑战!本文正在参与“程序员必备小知识”创作活动。

前言

本文针对子系统进行权限设计讲解,目前使用最普遍的权限管理模型正是 RBAC(Role-Based-Acces Control)模型,本文将结合RDBC 与子系统的特殊性对RDBC来进行设计。

一、RBAC概述

RBAC模型是基于角色访问控制的简称,它是在上世纪90年代提出来的新模型。

在RBAC中,有三个基础的组成部分,分别是:用户、角色和权限。

RBAC 通过定义角色的权限,并对用户授权某个角色从而来控制用户的权限,实现了用户和权限的逻辑分离,极大的方便了权限的管理。

它们之间的关系如下:

image-20210924103455322

分别对应数据库中的五张表。当然,这是传统的方式,即角色和权限存在多对多的关系;用户和角色也可以存在多对多的关系。例如一个用户既可以是司机的角色,也可以是扫地员工的角色。通过这两张关系表对三种资源进行绑定。

二、本项目采用的RBAC 设计

这里将介绍下子系统是如何基于 RBAC 模型进行权限设计的。因为子系统是多个电站资源,所以这里就出现了四个资源。但是我们这个系统里一个用户只能属于一个角色,所以就不存在用户角色关系表了。

分别对应六张表。

image-20210924104614456

当在主系统进行分配电站资源目录的时候,同时也会修改角色权限关系表中的子站超级管理员的角色资源。

当子站的超级管理员角色不存在时,就去创建超级管理员角色。然后给这个角色赋予电站权限关系表中同等的权限。

然后在创建管理员的时候判断是否有超级管理员角色,如果没有就提示让它先编辑目标电站资源。

image-20210924105945785

\