编程开源技术交流,分享技术与知识

网站首页 > 开源技术 正文

RBAC权限管理系统(权限设计rbac 权限设计)

wxchong 2024-09-10 22:32:08 开源技术 8 ℃ 0 评论

权限系统的设计一直是软件行业的核心,权限=功能权限+数据权限,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'


六维权限管控模型

该体系从组织范围、角色范围、动作范围、模块范围、触控对象、数据范围6个维度,实现对角色权限的精准控制。

作为系统管理员,可以根据实际的情况,定义角色组,然后将模块权限赋权给特定的二级管理员,直至分配到特定的表单字段。超级管理员(固定的)、角色、部门、用户、模块、字段之间是动态组合的关系。

角色可以针对部门设立,也可以针对菜单和模块设立。赋权角色,用于向同级管理员分配数据维护权限。针对页面的操作权限分完全控制、禁止、只读、编辑四种。部门上可以分为总部、分部(分公司)、部门、员工。可以设立特别权限组,即某个标识好的角色,然后进行赋权和分权。

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表