怎样设计后台系统的数据权限?

一直想写一下关于数据权限的配置问题。权限系统的两大体系--功能权限和数据权限之中,功能权限的设计相对简单清晰,而数据权限就比较杂乱,是许多权限设计人员的隐痛。

什么是数据权限?

数据权限就是对用户所查看的业务数据范围进行权限控制。

例如:销售人员只能看到他自己所对接的客户单据;运营人员只能看到自己所管理的商家信息;店长只能看到自己所在的门店的订单信息;采购人员只能看到自己所负责的品类商品等。

在后台系统中,数据权限是支撑工作分工的基础,更是信息安全的重要保障。

数据权限的配置方式

数据权限的各种配置功能眼花缭乱,其实抽象来看基本上不外乎以下两种情况:

1、用人员直接绑定数据资源。

例如用人员绑定门店;用人员绑定品类;用人员绑定客户或商家等。下游各业务系统通过登录后的账号(对应一个人员)从权限系统查询到该账号对应的门店范围/品类范围/客户列表/商家列表……等等。这个比较好理解。

但是需要注意的是:数据权限与人员的组织架构有时看起来会有着千丝万缕的关系,往往在设计中容易混在一起越弄越迷糊。

例如小王是A门店的员工,那他拥有的数据权限就是A门店的不是吗?其实这两者从概念上首先要区分清楚,小王从组织架构上属于A门店,但是有可能由于其他新店开业时人手不足,需要小王同时兼任B门店的工作。

所以组织架构和权限需要分开设计,这是两个不同的系统模块,只是如果为了节省操作的话系统模块之间可以做一些自动同步,例如小王添加为A门店员工后,自动调用权限接口开通A门店的权限。

人员直接绑定数据资源的方式比较清晰,不过缺点就是维护的工作量大,假如品类特别多,每个人都要直接绑定品类的话,得勾选好多次。于是产生第2种方式。

2、将人员通过一个分组的方式绑定权限

这种方式也比较常见。先将数据资源分组,然后用人员绑定分组。常见的分组方式有按照组织架构中的部门,或者岗位,或者单纯的新建分组。说明如下:

1)按组织架构中的部门。

例如门店中经常会按照营业课组进行管理。营业课组是组织架构下的一种部门,一般是按照品类划分的,例如肉品课、果蔬课、水产课等等。每个营业课组中的人只能操作本营业课组所包含的品类业务(业务包含采购、盘点、移库等)。

所以营业课组可以作为一种分组来绑定品类。人员通过绑定营业课组这个分组便与品类关联起来。

这里还是需要注意那个问题:组织架构和数据权限的系统模块要分开。小李是肉品课组的人,但是他不一定只拥有肉品课的权限,有可能需要兼职熟食课的工作。意思就是在人员设置组织架构功能中,一个人只会属于一个部门,但是在人员的数据权限授权功能中,一个人可以同时分配两个分组(部门)。

2)按照岗位分工

岗位它也是人员组织架构管理中的一个信息,每个人入职的时候都会入职到一个岗位。有一些岗位可能自带数据分组属性,例如果蔬采购经理,肉品采购经理等。类似这样的岗位,也可以用来充当分组。岗位跟部门类似,分别于品类和人员相关联,而且也需要从系统边界上与数据权限区分清楚。

3)单纯新建分组

用户当然也可以通过自建一些分组的形式来关联人员和数据资源,分组的名称可以按自己的想法定义。要记得分组的目的是为了人员与数据资源绑定时更快捷,如果资源数据量不大,或分工也不是特别清晰时,就没有必要使用分组。

以上所述的人员直接绑定数据资源和通过分组来绑定数据资源是两种基本的数据资源配置方式,除此之外还有两种较为复杂的权限拓展:

第一种是上级拥有下级的权限

在数据权限的管理中这也是非常常见的一类情况,有些人员本身不绑定太多权限,而是直接拥有他所有下级的权限。

例如一个采销部门的总监或者总监助理,他要拥有查看本部门所有采销管理的供应商所产生采购单的权限。或者一个大区的大区经理,他要拥有下属所有城市的销售经理的客户订单查看权限。

具体的处理方式:在人员身上可以配置以下的权限选项:仅本人、仅本部门、本人及下级 、本部门及下属部门。

一般像组织架构中拥有直接上下级关系的,比如部门总监,可以将权限设置为本人及下级。而像一些助理岗位,比如总监助理、经理助理,或者一些业务支持类岗位的人,他不属于任何人的上级,但是他也要查看本部门所有的数据。所以就用本部门或本部门及下属部门比较合适。

这个权限的配置还可以配置到功能角色或者岗位上。

接口封装的内部逻辑会比较复杂一些。对外提供的接口还是通过用户账号查询数据资源,但是内部就需要通过组织架构查询到人员信息再查询到权限来进行统一封装。

第二种拓展是支持更灵活的兼职情况。

例如小张同时兼任采购经理和销售经理两个职责,但是他做采购时负责的是水果品类,而做销售时销售的是水果和蔬菜两个品类。一般来说这种情况并不是特别多,但是一旦存在的话我们的权限系统要怎么来支持更灵活的配置呢?那么就需要在他的功能权限下面来选择数据资源。功能权限一般是通过功能角色来体现,所以就需要在功能角色下面直接挂数据资源或者数据资源的分组。

这样设计之后,权限系统对下游输出接口时就需要做一层非常复杂的封装逻辑。同时接口中还需要下游传入当前操作的功能是哪个。

需要注意的是,开始也说过这种兼职的情况在企业中并不太常见。系统设计时需要兼顾考虑灵活性和用户操作以及理解的复杂性,取一个平衡点。如果在企业中这种情况只是一个两个的特例,数据资源的量又大时,建议不要设计的这么复杂。

好了,以上就是对数据权限设计的一些经验浅谈,主要是将数据权限的配置逻辑梳理了一下,到设计具体功能原型时其实又是一个考验,有时候一个公司涉及的数据资源特别多,又按品类又按门店又按商家又按客户还要兼容下级权限,怎样让用户清晰理解且便于操作是产品经理的职责所在。不过一定首先要把握住底层配置逻辑不要乱,才能慢慢梳理清楚前端展示。

最后祝大家的系统权限都能灵活健壮。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,591评论 6 501
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,448评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 162,823评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,204评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,228评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,190评论 1 299
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,078评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,923评论 0 274
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,334评论 1 310
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,550评论 2 333
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,727评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,428评论 5 343
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,022评论 3 326
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,672评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,826评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,734评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,619评论 2 354