概念
RBAC (Role-Based Access Control) 是基于角色的访问控制,是一种用设计权限的一种思想,主要是将功能组合成角色,再将角色分配给用户
![图片[1]-RBAC权限模型 - 拾光赋-拾光赋](https://image.baidu.com/search/down?url=https://cdn.nlark.com/yuque/0/2024/png/34690769/1722168247383-b72cf8f8-aaff-47ff-8cba-f6067b0a0018.png#averageHue=%23fafafa&clientId=u2a28b703-53c6-4&from=paste&height=377&id=ubb1a388b&originHeight=565&originWidth=2073&originalType=binary&ratio=1.5&rotation=0&showTitle=false&size=79068&status=done&style=none&taskId=u41cd82ef-000c-4bf9-853f-d856795d959&title=&width=1382)
目标:
- 解耦用户和功能,降低操作错误率
- 降低功能权限分配的繁琐程度
实现思想
RABC 主要有user 用户表,role角色表,permission权限表,以及role-permission和user-role的中间关联表,但是实际上对于一般的需求,我们可以只使用user用户表, 里面存储字段标识 角色信息,然后在代码层面进行编码方式 使用enum枚举出所有角色表,使用权限注解标识方法,将权限注解与方法进行一个绑定,其中权限里面包括(角色)信息,通过拦截器进行拦截权限进行筛选。
![图片[2]-RBAC权限模型 - 拾光赋-拾光赋](https://image.baidu.com/search/down?url=https://cdn.nlark.com/yuque/0/2024/png/34690769/1722168491652-ecf8238d-b875-4eff-8c45-c851251a53db.png#averageHue=%23fafaf9&clientId=u2a28b703-53c6-4&from=paste&height=706&id=u30ec8b84&originHeight=1059&originWidth=1986&originalType=binary&ratio=1.5&rotation=0&showTitle=false&size=133578&status=done&style=none&taskId=u005c0230-db55-4cf6-b52c-485e8431abf&title=&width=1324)
从上面这个的图片来看,我们将用户和角色关联,角色和权限关联,并且都是N对N的关系,所以要创建两个新的关系表。
![图片[3]-RBAC权限模型 - 拾光赋-拾光赋](https://image.baidu.com/search/down?url=https://cdn.nlark.com/yuque/0/2024/png/34690769/1722169246479-31779fa3-4b40-4f77-9dbf-a42824c7ec72.png#averageHue=%23fffefe&clientId=u2a28b703-53c6-4&from=paste&height=473&id=u10b060f4&originHeight=709&originWidth=996&originalType=binary&ratio=1.5&rotation=0&showTitle=false&size=25871&status=done&style=none&taskId=u586e6ad7-815b-4917-904d-cdfa06ef341&title=&width=664)
![图片[4]-RBAC权限模型 - 拾光赋-拾光赋](https://image.baidu.com/search/down?url=https://cdn.nlark.com/yuque/0/2024/png/34690769/1722168376865-cb96ff4d-ae69-4ec8-acb8-8c73110f45b7.png?x-oss-process=image%2Fformat%2Cwebp%2Fresize%2Cw_1333%2Climit_0#averageHue=%23fdfdfc&from=url&id=ES1du&originHeight=739&originWidth=1333&originalType=binary&ratio=1.5&rotation=0&showTitle=false&status=done&style=none&title=)
将相同权限的用户封装成一个角色,然后将某一个角色与多个权限相关联起来,一旦用户被分配了适当的角色后,该用户就拥有此角色的所有操作权限。
这样做的好处是,不必在每次创建用户时都进行分配权限的操作,只要分配用户相应的角色即可,而且角色的权限变更比用户的权限变更要少得多,这样将简化用户的权限管理。这种“权限赋予给角色,把角色又赋予用户”的权限设计既清晰,又易管理。
© 版权声明
THE END


![表情[baoquan]-拾光赋](https://blogs.ink/wp-content/themes/zibll/img/smilies/baoquan.gif)


暂无评论内容