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…

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

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

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

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

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

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

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

感恩的心

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

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

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

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

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

Python 的 requests 库的用法

Python爬虫利器一之Requests库的用法:http://cuiqingcai.com/2556.html Python利用Requests库写爬虫(一):http://www.jianshu.com/p/e1f8b690b951 Python-第三方库requests详解:http://blog.csdn.net/shanzhizi/articl…

2018 年人工智能会怎么发展?这里有 8 个预测

来源:36氪普华永道发布了一份报告,对人工智能在2018年的发展趋势进行了研究,并做出了8项预测。人工智能非常复杂,而且发展速度很快。任何人都不可能对其未来几年的发展方向做出准确的预测。但就人工智能在2018年的发展趋势来说&am…

C 和 C++ 文件操作详解

来源:http://www.cnblogs.com/likebeta/archive/2012/06/16/2551662.html 来源:http://www.cnblogs.com/likebeta/archive/2012/06/16/2551780.html CPP 的文件操作 在C中,有一个stream这个类,所有的I/O都以这个“流”类为基础的…

redis 判断存在性_springboot + redis + 注解 + 拦截器 实现接口幂等性校验

提醒:后面有些图片模糊,请点击原文查看清晰图片一、概念幂等性, 通俗的说就是一个接口, 多次发起同一个请求, 必须保证操作只能执行一次比如:订单接口, 不能多次创建订单支付接口, 重复支付同一笔订单只能扣一次钱支付宝回调接口, 可能会多次回调, 必须处…

汽车行业最大创新仍未到来,四大力量将重塑未来汽车新纪元

来源: 资本实验室 作者:王进自第一辆福特“T”型车问世以来,汽车行业已经诞生了众多层出不穷、持续进化的创新成果。例如,制造商不断创造了新的车体风格,拓展了新的市场区隔,改进了自动换档和动力转向系…

echarts柱形图x轴y轴互换_数控机床在加工零件时,突然出现X、Y、Z轴失控?如何处理...

数控机床现在广泛应用于单品种大批量的零件加工中,由于稳定性强、精度高、效率高,取代了原来的普通机床。同时数控铣床、数控车床被大规模的配置到各产品自动化生产线上,实现了自动化无入管理。但在生产中由于数控机床的伺服系统出现故障&…

python beautiful soup库的用法

Python 爬虫利器二 之 Beautiful Soup 的用法:http://cuiqingcai.com/1319.html Beautiful Soup 4.2.0 文档:https://www.crummy.com/software/BeautifulSoup/bs4/doc/index.zh.html Python3 --- BeautifulSoup --- 节点选择器:https://www.…

Java并发编程实战~原子类

对于简单的原子性问题&#xff0c;还有一种无锁方案&#xff0c;先看看如何利用原子类解决累加器问题。 public class Test {AtomicLong count new AtomicLong(0);public void add10K() {int idx 0;while(idx < 10000) {count.getAndIncrement();}}} 无锁方案相对互斥锁…

著名物理学家斯蒂芬•霍金去世,他曾告诫人类要学会避免人工智能可能的风险

据多家媒体报道&#xff0c;著名的英国物理学家斯蒂芬霍金于3 月 14 日去世&#xff0c;享年 76 岁。霍金教授的孩子露西&#xff0c;罗伯特和蒂姆发表了声明确认了这一消息。斯蒂芬威廉霍金(Stephen William Hawking)&#xff0c;1942年1月8日出生于英国牛津&#xff0c;英国剑…

电路板上的插头怎么拔下来_空调插头一直不拔费电吗?实测一周竟然发现了真相!...

随着气温的不断走低&#xff0c;全国绝大部分城市已经进入了真正意义上的秋天。那么&#xff0c;经过了酷热一夏&#xff0c;你家的空调电源插头拔掉了吗? 说道空调&#xff0c;想必大家都知道这“家伙”可是耗电大户。尤其在七八月份&#xff0c;几乎都是24小时不停机在运行。…

C++ stringstream

参考&#xff1a;http://www.usidcbbs.com/read-htm-tid-1898.html 常见格式串 %% 印出百分比符号&#xff0c;不转换。 %c 整数转成对应的 ASCII 字元。 %d 整数转成十进位。 %f 倍精确度数字转成浮点数。 %o 整数转成八进位。 %s 整数转成字符串。 %x 整数转成小写十六进位…