码迷,mamicode.com
首页 > 其他好文 > 详细

RBAC基于角色的权限管理模型

时间:2019-08-07 22:39:04      阅读:96      评论:0      收藏:0      [点我收藏+]

标签:数据库设计   传统   原则   需要   bsp   基于   特权   用户   设计   

一、权限管理模型的必要性:

              a. 安全性:防止误操作,防止数据泄露,保证信息的安全。

              b. 数据隔离:保持不同的角色具有不同的权限,只能看到自己权限范围内的数据

 

二、权限管理模型的发展:

              a. 传统的权限管理:随着用户数量的增大和用户权限区别的增大,传统的权限管理需要针对每个用户依次管理,成本较高。

              b. RBAC:Role-Based Access Control 用户-角色-权限,权限与角色相关联,用户与角色相关联,通过对用户赋予相应的角色,再去获取相应的权限,从而实现了用户与权限的解耦,具有很好的扩展性和通用性。

 

三、RBAC的三个原则:

              a. 最小特权原则:即通过对每个角色赋予相应的权限,通过对每个用户赋予相应的角色,从而实现给用户分配相应的权限,保证该权限不超过该用户完成其任务所需要的权限即可。

              b. 责任分离原则:指的是针对敏感任务,分配两个责任上相互制约的两个角色,比如针对财务管理员和会计。

              c. 数据抽象原则:主要是通过抽象许可权来实现。比如财务上的信用等抽象许可权。

 

四、RBAC的数据库设计

              a. 用户表

              b. 角色表

              c. 权限表

              d. 用户角色表

              e. 角色权限表

              技术图片

 

 

五、基于RBAC的实现流程

              a. 首先针对权限的校验的业务逻辑在一个父类中实现,其余子类均需要实现该父类,从而实现针对用户的权限的控制。

              b. 用户访问时,首先查询用户表判断用户的状态是否是可用。

              c. 然后根据用户 id查询 用户角色表,得到用户的角色id

              d. 根据角色 id 查询 权限角色表,得到该用户在该角色下的权限id

              e. 根据权限 id 查询 权限表,得到该用户在该角色下的权限。

 

六、主流的权限管理框架

              a. Spring Security

              b. Apache Shiro

RBAC基于角色的权限管理模型

标签:数据库设计   传统   原则   需要   bsp   基于   特权   用户   设计   

原文地址:https://www.cnblogs.com/Demrystv/p/11317961.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!