都是老生常谈的东西,我只是做一个总结。
我接触过的权限设计一般都是做成功能类型的,不会颗粒度很细。权限关系有很多种设计与实现,有颗粒度细的,对数据做权限管理的(比
较喜欢,一般这样的系统都是需要定制的,很难做到通用化。),颗粒度大的,也就是常用的,大都是根据功能上的划分模块来做。
如果是颗粒度比较粗的
比如,我列出我们需要的建的表。
管理用户表:存各种管理员基础信息
角色表:存储各种角色信息,这也是权限细化的第一部分,多角色系统。
功能表:存储功能模块的信息,列出功能的的结构
然后就是他们的关联了,然后为了功能的重用,加入功能的分组,以一个功能组的形式分配给角色,然后应用于管理员用户。
这就是颗粒度大,但是比较通用的权限设计。
如果是颗粒度比较细的
同上建立表结构,但是在功能表的设计的时候,要细化,对每个功能模块设计详细的功能描述,比如常用的增删查改,数据的导入导出,尽
量。这个时候要加一个功能描述的字段,可以以分隔符进行分隔,然后再功能使用时加载这个描述,生成对应的界面。
如果是数据上的颗粒度细化呢(上述两种,我都有过实践,这个只是与人讨论过,没有付诸实践)
理论上讲,对数据进行细颗粒化的设计就要对表数据进行一定的控制,经常做的就是加一个标示字段已作区分。讲数据的权限分配到角色的
级别。也就是在你想要做数据细颗粒化的表上加一个角色标示(我不怎么建议直接加用户的标示,范围太小)。这样,对于不同的角色就有
了不同的数据。如果在细分下去,就要对角色再进行细化。暂时思考到这里。
参考文章:韩迎龙权限系列 ,老韩的权限实现