4张图看明白用户、权限和租户的关系
2020-03-17 16:27
316 查看
1、最简单的用户系统
一个最简单的用户系统,只需要有用户和身份验证两个模块就够了。如图: 这里提示一下:上层数据依赖下层数据。举个栗子,就是身份验证需要依赖用户数据。
2、具有权限管理的用户系统
如果需要进行权限管理的话,那么就加上资源和角色模块。同时,在身份认证之后需要按需进行鉴权。 资源和用户都是最底层的数据,角色需要关联用户和资源完成对用户的授权。了解RBAC模型的,应该很清楚这种关系。
3、带有用户组、组织机构的复杂系统
如果我们需要有用户组辅助用户管理,或者系统中需要有组织机构,并且支持对职位进行授权操作的话。我们可以再添加用户组和组织机构模块,这两个模块可以和用户建立多对多的关系。同时,角色就可以通过和用户组、组织机构和用户建立间接的关系,这样就可以简化授权操作。
4、一个多租户平台
很多时候,我们需要有租户的概念,使用租户来分开用户的业务数据。譬如钉钉就是一个多租户系统,每家企业在钉钉里面都是一个租户。 我们可以在用户之上增加租户模块,让租户和用户、资源(应用)建立多对多的关系。同时,用户组、组织机构和角色就都可以按租户进行区分了。
假设每个租户都有「管理员」这个角色,那么1万个租户在系统里面就会有1万个名字叫管理员的角色,只不过每个租户都只能看到自己的那个「管理员」角色罢了。如果A租户建立了一个「业务员」角色,那么B租户是没有这个角色的,他想要的话,必须自己去建立一个。
最后
在第4张图里面,用户组、组织机构和租户这几个模块都是可选的。模块之间不应该存在耦合关系,只存在数据依赖关系。你需要什么就实现什么,并不需要一开始就全部实现。
看懂的请点个赞,以便让更多的人看到。
相关文章推荐
- 权限管理----用户与角色关系
- 权限与命令间的关系(用户访问文件的基本权限)
- 【工作流前进之路】Activiti 权限之处理用户组和用户关系
- jeesite快速开发平台(五)----用户-角色-部门-区域-菜单-权限表关系
- (转)Oracle用户、角色、权限、登录方式的关系
- Dynamics crm 中的业务部门,用户,角色,权限之间相互关系(一)
- linux 进程的权限与用户权限及文件属性的关系
- Oracle用户、角色、权限、登录方式的关系
- Oracle12C多租户管理用户、角色、权限
- linux的用户和文件权限的关系
- 用户、权限、菜单、文件、页面之间的表关系
- 用户角色权限设计-三者关系
- 角色模型:用户、部门、角色、权限、模块的关系模型 【转】
- 角色模型:用户、部门、角色、权限、模块的关系模型
- 角色模型:用户、部门、角色、权限、模块的关系模型
- Linux的用户、组、文件、权限的关系
- 用户、角色、权限表的关系
- javaEE 用户、部门、角色、权限实体的关系设计与hibernate映射配置文件关系总结
- 权限管理----用户与模块关系
- Activiti 权限之处理用户组和用户关系