RABC权限控制模型(概念)

建立关联关系

权限 -> 资源

单向多对多

java类之间单向:从 权限 实体类可以获取到 资源 对象的集合,但是通过 资源 获取不到权限
数据库表之间多对多:
一个 权限 可以包含多个 资源
一个 资源 可以分配给多个不同 权限

角色 -> 权限

单向多对多

用户 -> 角色

双向多对多

java类之间双向:可以通过用户获取它具备的角色,也可以看一个角色下包含哪些用户
数据库表之间多对多:
一个角色可以包含多个用户
一个用户可以身兼数职

多对多在数据库建中间表

select t_student.id,t_student.name from t_student left join t_inner on t_student.id = t_inner.student_id left join t_subject on t_inner.subject_id = t_subject.id where t_subject.id = 1

中间表的主键生成方式

方式一:另外的设置一个字段作为主键
方式二:使用联合主键,没有id字段,两个字段同时设置为主键,联合主键组成的组合不能重复。主键值(1,1)(1,2)(2,1)(2,2) 当再次出现(1,1),mysql报错。

RBAC模型控制

核心:用户通过角色和权限进行关联
Role-Based Access Control (基于角色的访问控制)

RABC0
RABC1:子角色C继承父角色P 和RABC2
静态责任分离:
互斥角色,用户只能被分配到一组互斥角色中的一个角色
先决条件角色:用户向拥有B角色必须先拥有A角色,从而保证用户拥有Y权限的前提是拥有X权限。
动态责任分离:
用户登录系统时生效。一个用户身兼数值,在特定场景下激活特定角色
RABC3

猜你喜欢

转载自blog.csdn.net/m0_47119598/article/details/112766244
今日推荐