“功能权限”已经有成熟的 RBAC(Role Based Access Contrl 基于角色的访问控制)方案。
那么 “数据权限” 这部分有什么成熟的方案可以套用嘛?
希望可以满足这样的需求:
1、一套系统可供多家不同的公司使用。每家公司只能看到自己公司的数据。但是有个“超级公司”(自己,即开发系统的公司)可以看到所用公司的数据。
2、每家公司有自己的一套 角色、用户 权限,可以自行添加 用户,角色。但是有个“超级用户” 可以看到所有用户和角色。
现在想到是 增加一个“域”的概念( domain ),每个公司就是一个“域”。通过 登录的用户 id 去找到 关联的 “域”,然后获取相应的数据。
但是这样有一个上面的需求不能满足,就是不能做到 “超级管理域” 可以管理所有的用户。
因为是通过登录后用户 id 去 关联 域,那么 用户 和 域 的关系应该是 多对一, 不能是多对多,否则无法判断当前用户属于哪个域。
而一个 “超级管理域” 管理所有用户,又需要一个用户同时要属于他自己公司的域,和 “超级管理域” 。
大家有遇到过这样的需求吗,也不知道这样有没有描述清楚,,,
或者说 “超级管理域” 其实就是一个相当于电商的后台系统, 单独做一个后台系统去管理所有的用户,所有的数据这样。
大家有什么更好的思路吗?谢谢 :)
1
silencefent 2019-09-02 15:30:33 +08:00 1
你把系统管理独立出来,别嫌麻烦重新改一遍接口就行了,别搞什么超级域
|
2
nl101531 2020-07-13 19:24:34 +08:00
最近也遇到类似的问题,数据权限没什么好的办法解决,业务要求不高的话,数据挂钩上一个权限标识,应用中获取用户能感知到的所有权限标识,然后做 IN 查询。
|