查看: 3416|回复: 0

[产品观点] RBAC权限管理系统

[复制链接]

4

主题

5

回帖

116

积分

会员

Rank: 5Rank: 5

积分
116
发表于 2020-4-9 01:51:57 | 显示全部楼层 |阅读模式
尹广磊公众帐号
权限系统的设计一直是软件行业的核心,权限=功能权限+数据权限,RBAC用户、角色、权限、组设计方案是一套通用权限管理体系。

这个方案大致用到5张表:用户表(UserInfo)、角色表(RoleInfo)、菜单表(MenuInfo)、用户角色表(UserRole)、角色菜单表(RoleMenu)。
各表的大体表结构如下:
用户表(UserInfo):Id、UserName、UserPwd
角色表(RoleInfo):Id、RoleName
菜单表(MenuInfo):Id、MenuName
用户角色表(UserRole):Id、UserId、RoleId
角色菜单表(RoleMenu):Id、RoleId、MenuId
最关键的地方是,某个用户登录时,如何查找该用户的菜单权限?其实一条语句即可搞定,假如用户的用户名为zhangsan,则他的菜单权限查询如下:
  Select m.Id,m.MenuName from MenuInfo m ,UserInfo u UserRole ur, RoleMenu rm Where m.Id = rm.MenuId and ur.RoleId = rm.RoleId and ur.UserId = u.Id and u.UserName = 'zhangsan'

六维权限管控模型
图片1.png
该体系从组织范围、角色范围、动作范围、模块范围、触控对象、数据范围6个维度,实现对角色权限的精准控制。
作为系统管理员,可以根据实际的情况,定义角色组,然后将模块权限赋权给特定的二级管理员,直至分配到特定的表单字段。超级管理员(固定的)、角色、部门、用户、模块、字段之间是动态组合的关系。
角色可以针对部门设立,也可以针对菜单和模块设立。赋权角色,用于向同级管理员分配数据维护权限。针对页面的操作权限分完全控制、禁止、只读、编辑四种。部门上可以分为总部、分部(分公司)、部门、员工。可以设立特别权限组,即某个标识好的角色,然后进行赋权和分权。

QQ截图20200408101157.png
您需要登录后才可以回帖 登录 | 新用户注册

本版积分规则

QQ|手机版|友情链接|版权声明|关于我们|Axure中文社区 |网站地图

GMT+8, 2024-4-24 05:04

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表