请问后端大佬 “数据权限” 的表设计应该怎么做?

2019-09-02 14:23:33 +08:00
 selfcreditgiving

“功能权限”已经有成熟的 RBAC(Role Based Access Contrl 基于角色的访问控制)方案。
那么 “数据权限” 这部分有什么成熟的方案可以套用嘛?

希望可以满足这样的需求:
1、一套系统可供多家不同的公司使用。每家公司只能看到自己公司的数据。但是有个“超级公司”(自己,即开发系统的公司)可以看到所用公司的数据。
2、每家公司有自己的一套 角色、用户 权限,可以自行添加 用户,角色。但是有个“超级用户” 可以看到所有用户和角色。

现在想到是 增加一个“域”的概念( domain ),每个公司就是一个“域”。通过 登录的用户 id 去找到 关联的 “域”,然后获取相应的数据。
但是这样有一个上面的需求不能满足,就是不能做到 “超级管理域” 可以管理所有的用户。
因为是通过登录后用户 id 去 关联 域,那么 用户 和 域 的关系应该是 多对一, 不能是多对多,否则无法判断当前用户属于哪个域。
而一个 “超级管理域” 管理所有用户,又需要一个用户同时要属于他自己公司的域,和 “超级管理域” 。

大家有遇到过这样的需求吗,也不知道这样有没有描述清楚,,,

或者说 “超级管理域” 其实就是一个相当于电商的后台系统, 单独做一个后台系统去管理所有的用户,所有的数据这样。

大家有什么更好的思路吗?谢谢 :)

2946 次点击
所在节点    问与答
2 条回复
silencefent
2019-09-02 15:30:33 +08:00
你把系统管理独立出来,别嫌麻烦重新改一遍接口就行了,别搞什么超级域
nl101531
2020-07-13 19:24:34 +08:00
最近也遇到类似的问题,数据权限没什么好的办法解决,业务要求不高的话,数据挂钩上一个权限标识,应用中获取用户能感知到的所有权限标识,然后做 IN 查询。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/597189

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX