V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
selfcreditgiving
V2EX  ›  问与答

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

  •  
  •   selfcreditgiving · 2019-09-02 14:23:33 +08:00 · 2752 次点击
    这是一个创建于 1920 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

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

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

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

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

    2 条回复    2020-07-13 19:24:34 +08:00
    silencefent
        1
    silencefent  
       2019-09-02 15:30:33 +08:00   ❤️ 1
    你把系统管理独立出来,别嫌麻烦重新改一遍接口就行了,别搞什么超级域
    nl101531
        2
    nl101531  
       2020-07-13 19:24:34 +08:00
    最近也遇到类似的问题,数据权限没什么好的办法解决,业务要求不高的话,数据挂钩上一个权限标识,应用中获取用户能感知到的所有权限标识,然后做 IN 查询。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5736 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 32ms · UTC 02:52 · PVG 10:52 · LAX 18:52 · JFK 21:52
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.