6

数据权限放在角色上?还是用户上?

 3 years ago
source link: https://www.pmcaff.com/discuss/2755879024030784?newwindow=1
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client
数据权限放在角色上?还是用户上? - PMCAFF产品经理社区
加油站 产品经理

都不是好的解决办法。

建议数据权限既不是直接在每个用户身上配置,也不是在角色上面配置。而是通过规则来进行限制。

题主既然提出来这个问题,我认为应该是了解过RBAC这种权限模型的。但是个人觉得RBAC权限模型其实更适合“操作权限”的配置,对于“数据权限”有更简单的方法来处理。

某个数据是否可以被一个人查看,一般来说是能根据一个简单的规则来进行限制的

1.数据来源是谁,谁就能查看

2.领导可以查看下属能看到的数据

举个例子:

销售部有5个人:A、B、C、D、E。五个人在操作权限上都给了“销售订单”页面的权限。

A和B都是一线销售人员。C是A的小组长,D是B的小组长,E整个销售部门的经理。

假如A销售在系统里面下了一个销售订单。这个销售订单的来源是A。

那么,根据上面的两条规则可以得到这样的数据查看权限:

  • A作为数据来源可以查看该条数据的。
  • B既不是数据来源也不是A的领导,那么B就无法查看到该条数据
  • C作为A的领导可以查看到该条数据
  • D是B的领导,但是数据来源是A所以也无法查看该条数据
  • E作为A的领导的领导也可以查看该条数据

这样的数据权限是不是刚好跟我们实际想要实现的效果一致?

你看,只需要根据这两个简单的规则就解决了数据权限的分配问题,相比一个用户一个用户或者一个角色一个角色的去设置,显然简单很多。

但是需要注意的是,这样的规则能够运行起来的条件是:你的系统里面有清晰、完整的员工组织架构。不然系统是不知道A和B到底是同级关系还是上下级关系的。可以把这种数据权限的配置方法称为:基于组织架构的权限控制。

但是!!!规则虽然简单,有些特殊情况按照这种规则来缺无法满足需求怎么办

  • 市场部需要销售部的某些数据来进行数据分析;
  • 财务部在审核某个申请的时候,需要查看对应数据的详情了解情况;

对于这些特殊情况,其实也可以抽象成两种场景:

  • 数据需要长期共享给某个人、部门或者角色
  • 数据临时因为某些申请或者事情需要共享给某个部门

针对这些情况,同样可以通过创建一些特殊规则来进行管理。

比如可以创建数据的共享规则,规则里面约定是长期共享还是短期共享(什么时候开始,什么时候停止),约定共享哪些数据(数据来源?数据所属部门?数据时间?……),约定共享人或者部门或者角色有哪些……

对于临时申请这种共享,可以跟系统里面的审批流关联。让审批过程中,参与审批的人都可以查看对应数据。审批结束后是否收回数据查看权限等。


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK