linuxoracle查看用户权限_权限管理系统设计过程

b0316f05ef7847331396dac686881480.png

今天和大家一起探讨权限管理方面的设计心得。权限管理,是B端后台系统一个重要的组成部分,属于底层的支撑功能,系统内所有的功能,甚至字段的增减都涉及到权限的分配和管理。因此怎样配置后台的权限系统,以适应多变业务需求,是今天笔者和大家分享的内容。

文章目录

  • 控制权限的主体
  • 权限管理模型
    • 通过角色控制账号权限
    • 通过简档控制账号权限
  • 权限管理的分类
    • 菜单权限
    • 操作权限
    • 数据权限

一、控制权限的主体

后台系统是通过账号登录的,账号用户控制每个员工的权限。

二、权限管理模型

1. 通过角色控制账号权限

除非后台账号数量很少(20个以内),,否则一般不会直接对账号配置权限,因为用户基数比较大的情况下,很多人的权限都是一样的,如果管理员给100人甚至更多授权,工作量巨大,因此引入了“角色”的概念。一个角色可以与多个用户关联,管理员只需要把该角色赋予用户,那么用户就有了该角色下的所有权限。角色起到了桥梁的作用,这样设计提升了效率。这种权限管理的设计模型如下,一个账号可以对应多个角色,每个角色对应不同的权限。

21c806b94cd6cd0aecfbd3e66e97ec20.png
角色-权限管理模型

2. 通过简档控制账号权限

一些大型的公司,用户数量较大,不同部门下的角色,权限是一样的,比如英国部下的销售人员和美国部下的销售人员权限一致,如果每个新增一个功能,所有角色都需要修改权限,那么对于管理员来说,维护成本巨大,因此可以引入简档的概念。笔者所在的公司,后台账号大约有500个,角色有80多个,简档仅有10个,权限变更时,只需要修改这10个简档就可以了,效率非常高。这种权限管理的设计模型如下,一个账号对应一个简档,每个简档对应不同的权限。这种模型还有一个好处就是,可以利用上下级的角色关系,控制数据的权限,这方面在下面详细说。

654ec807a351f568eee18e65bac29b6f.png
简档-权限管理模型

3. 通过账号、角色、简档都可以实现系统权限的控制,没有说哪种方式是最好的,如果公司少于100人,角色不多,完全没有必要采用简档控制权限的方式,关键是根据自己公司的业务特点选择最合适的方案。

三、权限管理的分类

上面说到的是控制权限的媒介,下面重点讲解权限管理都包含哪些内容,应该怎样进行设计。

  1. 菜单权限

即用户在系统中可以看到的页面,由菜单来控制,菜单包括一级菜单、二级菜单,只要用户有一级和二级菜单的权限,那么用户就可以访问页面。如图所示,即对应该角色/简档的用户对于分销管理、运营管理等在菜单栏没有入口。

1fd515bb0df43ff9227e229f165191cb.png
菜单权限配置

2. 操作权限

(1)操作权限分为对对象的操作权限和对字段的操作权限。对象的操作权限包括查看,创建,编辑、删除。用户点击删除按钮时,后台会校验用户角色下的所有权限是否包含该删除权限,如果是,就可以进行下一步操作,反之提示无权限。如图所示,即对应这个角色/简档的账号对接送机订单仅有查看的权限,没有创建、编辑和删除的权限。

55a1e53868d777b311a5a9538fbe7865.png
对象操作权限配置

(2)字段权限是指对记录对应属性的操作权限,字段的操作权限一般有2种,可查看权限和可编辑权限。配置了可查看全看,即用户可以查看该字段,没有配置该权限的账号,不能在页面上看到该字段。配置了可编权限的账号,可以编辑该字段的属性。如图所示,对应该角色/简档的用户只可以查看该对象的客户字段,不能对客户进行修

3. 数据权限

(1)通过角色/简档控制数据的查看和编辑权限:数据权限是指每个账号可查看的数据是不同的,可以通过角色/简档配置对不同对象的数据全新,这种设计方式上面的操作权限已经详细介绍过。

(2)通过对象控制公用权限和专用权限: 在新建对象时,可以设置对象的公用权限和专用权限,公用权限是指该对象下的记录,所有账号都可以访问。专用权限是指只有创建人可以查看记录,其他人没有权限查看。

(3)通过角色控制上下级数据权限:在实际的场景中,上级往往需要查看下级的数据,设置数据的专用性无法满足该需求。比如美国部销售总监需要看到其部门下的用户数据,英国部销售总监需要看到英国部下的用户数据。解决方案是通过角色判断账号间的上下级关系,上级可以查看下级的角色。这也是通过简档而不通角色关联权限的好处,因为通过账号关联角色,再通过角色关联账号的话,账号和角色间一般是多对多的关系,这样就无法分辨账号间的上下级。通过账号关联简档,简档关联权限,可以保证一个账号只有一个角色,从而可以判断出账号间的上下级关系。

(4)通过共享规则控制数据权限:有些情况,账号需要查看某个对象下的一些记录,但是该账号和创建记录的账号在组织架构上没有上下级关系,比如美国财务部需要查看美国销售部下的订单数据,同时为了数据的安全性,不能给美国财务部的账号查所有业务部门的订单数据。这时就需要用到共享规则。共享规则的本质是把符合一定条件的记录共享给一些账号,共享后这些账号可以查看或者编辑这些数据。共享规则的配置,需要确定以下四要素:

a、共享的对象:确定共享的是哪个对象的数据。

b、共享数据的条件:确定该对象下的哪些数据需要共享。

c、共享的账号:确定这些数据需要贡献给哪些账号。

d、共享权限:确定共享后,账号对这些数据的权限,分为只读和编辑权限。

总结:今天和大家探讨了权限设计的2种模型和权限设计包含内容。大家可以结合公司的特点,选择合适的设计方法。在实际项目中,会遇到多个系统,多个用户类型,多个使用场景,这就需要具体问题具体分析,但最核心都离不开这些方法,我们可以在其基础上进行扩展来满足需求。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/496759.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

MIT:大脑如何跟踪运动中的物体?

来源:脑健康联盟抓住一个弹起的球,或者用球拍击球,这两种行动都需要合理地估算触球时间。一直以来,神经科学家都相信,大脑是通过计算物体的运动速度来完成这些动作的。然而,麻省理工学院的一项新研究表明&a…

《深度探索C++对象模型(Inside The C++ Object Model )》学习笔记

来源:http://dsqiu.iteye.com/blog/1669614 之前一直对C内部的原理的完全空白,然后找到《Inside The C Object Model》这本书看了下, 感觉收获很大,因为书写得比较早,有些知识应该要更新,但是还是值得好好研…

arp病毒利用的Javascript技术

本文的目的是探讨JS相关技术,并不是以杀毒为主要目的,杀毒只是为讲解一些JS做铺垫的,呵呵,文章有点长,倒杯咖啡或者清茶慢慢看,学习切勿急躁! 最近公司的网络中了这两天闹的很欢的ARP病毒&#…

C++学习之路 | PTA乙级—— 1083 是否存在相等的差 (20 分)(精简)

1083 是否存在相等的差 (20 分) 给定 N 张卡片,正面分别写上 1、2、……、N,然后全部翻面,洗牌,在背面分别写上 1、2、……、N。将每张牌的正反两面数字相减(大减小),得到 N 个非负差值&#xf…

C++的黑科技(深入探索C++对象模型)

来源:http://www.cnblogs.com/qiaozhoulin/p/5227673.html “如何产生一个不能被继承的类”,这道题我反反复复只想到,将父类的构造函数私有,让子类不能调用,最后归结出一个单例模式,但面试官说,…

物联网测试完整解决方案 | 为你的芯片、模块、终端保驾护航

来源:物联网智库2017年被视为物联网商用元年。窄带物联网标准正式冻结,国内运营商重点布局以及设备制造商的强力推动……自此,物联网规模化商用迈入了快车道。然而,与传统的智能手机类似,基于NB-IoT技术的物联网设备在…

mbp网速很慢_苹果笔记本上网很慢怎么回事?macbook无线上网慢的解决方法

Mac笔记本连接到WiFi之后,发现网速很慢,简直让人无法接受,打开一个页面都要等上好几分钟。苹果笔记本上网很慢的原因有很多,检查一下WiFi信号是满格,那么排除所在网络带宽限制的原因。想要解决此问题也简单,只要修改手…

Java并发编程实战~CyclicBarrier

用 CyclicBarrier 实现线程同步 线程 T1 和 T2 要做到步调一致,都完成后通知到线程 T3 创建了一个计数器初始值为 2 的 CyclicBarrier,你需要注意的是创建 CyclicBarrier 的时候,我们还传入了一个回调函数,当计数器减到 0 的时候…

梦中的婚礼

让女孩听了陶醉的曲子梦中的婚礼 :http://player.youku.com/player.php/sid/XMjA1ODc3MTI/v.swf 电脑键盘弹奏 梦中的婚礼 :http://player.youku.com/player.php/sid/XMzMzNzQyMDA/v.swf 转载于:https://www.cnblogs.com/cube/archive/2008/07/19/1246736.html

C++学习之路 | PTA乙级—— 1084 外观数列 (20 分)(精简)

1084 外观数列 (20 分) 外观数列是指具有以下特点的整数序列: d, d1, d111, d113, d11231, d112213111, … 它从不等于 1 的数字 d 开始,序列的第 n1 项是对第 n 项的描述。比如第 2 项表示第 1 项有 1 个 d,所以就是 d1;第 2 项是…

DeepMind提出图形的「深度生成式模型」,可实现「任意」图形的生成

原文来源:arXiv作者:Yujia Li、Oriol Vinyals、Chris Dyer、Razvan Pascanu、Peter Battaglia 「雷克世界」编译:嗯~阿童木呀、KABUDA一般来说,图形是基本的数据结构,它在诸如知识图、物理和社会交互、语言和化学等许多…

eviews曲线图怎么做_【干货速递】Eviews:你不可不知的经典问答!

更多精彩内容请关注211统计课堂计量经济学是分析啥的?01计量经济学的主要用途或目的主要有两个方面:1.理论检验。这是计量经济学用途最为主要的和可靠的方面。这也是计量经济学本身的一个主要内容。2.预测应用。从理论研究和方法的最终目的看&#xff0c…

感恩的心

不气歌(一) 他人气我我不气,我本无心他来气。 倘若生气中他计,气出病来无人替。 请来医生把病治,反说气病治非易。 茶不思来饭无味,通宵达旦不入睡。 倘你伸腿离我去,撇我一人活受罪。 奉…

Python-OpenCV 图像与视频处理

来源:https://segmentfault.com/a/1190000003742481 一直断断续续的用过几次 OpenCV,感觉熟练掌握它的使用方法已经变的非常必要了,正好找到一个很不错的英文教程,就以此为起点,详细记录一下对 OpenCV 的学习过程吧。 …

C++学习之路 | PTA乙级—— 1086 就不告诉你 (15 分)(精简)

1086 就不告诉你 (15 分) 做作业的时候,邻座的小盆友问你:“五乘以七等于多少?”你应该不失礼貌地围笑着告诉他:“五十三。”本题就要求你,对任何一对给定的正整数,倒着输出它们的乘积。 输入格式&#xf…

Java并发编程实战~并发容器

在容器领域一个容易被忽视的“坑”是用迭代器遍历容器,例如在下面的代码中,通过迭代器遍历容器 list,对每个元素调用 foo() 方法,这就存在并发问题,这些组合的操作不具备原子性。 List list Collections.synchronize…

12c oracle 激活_Windows运维之Windows server 2016 安装及ORACLE 12C 安装

本文主要向大家介绍了Windows运维之Windows server 2016 安装及ORACLE 12C 安装,通过具体的内容向大家展现,希望对大家学习Windows运维有所帮助。首先创建虚拟机,选择windows server 2016启动虚拟机,进入安装界面,语言…

工信部:筹建全国首个区块链和分布式记账标准化技术委员会

作者:李秀琴在3.15即将来临之时,我国工信部给区块链行业又带来了一大利好消息。3月12日,工业和信息化部(以下简称工信部)在官网发布公告称,其正在就筹建全国区块链和分布式记账技术标准化技术委员会事宜开展…

PowerDesigner11技巧

文章来源:http://blog.csdn.net/edeed/archive/2006/02/10/596271.aspx 1、安装PD v11.0版 2、由pdm生成建表脚本时,字段超过15字符就发生错误(oracle) 原因未知,解决办法是打开PDM后,会出现Database的菜单…

C++学习之路 | PTA乙级—— 1087 有多少不同的值 (20 分)(精简)

1087 有多少不同的值 (20 分) 当自然数 n 依次取 1、2、3、……、N 时,算式 ⌊n/2⌋⌊n/3⌋⌊n/5⌋ 有多少个不同的值?(注:⌊x⌋ 为取整函数,表示不超过 x 的最大自然数,即 x 的整数部分。) 输入…