如何设计网站权限系统(转载)

news/2024/5/20 3:31:04/文章来源:https://blog.csdn.net/weixin_30702413/article/details/94876497

作者:Vance
链接:https://www.zhihu.com/question/20313385/answer/118095995
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

后台产品狗,之前踩过权限控制系统的大坑。

做完项目整体复盘,发现坑爹的不是难设计,而是对现有权限控制情况的了解程度低。

如果在平台设计之初就考虑到权限控制的问题,是好事。

越早进行系统的考虑,成本越低,效果也越好。

最好的当然是之前有成熟的系统可以接入复用。

如果没有的话,那就得尝试自己理解这一套东西,并深入了解现有情况再进行设计了。


谈到权限控制的设计,需要先理清楚定义和原理。

所以我们需要看到权限控制中,控制的本质,也就是说控制的是什么?

其实是:用户与可以进行的行为的关联关系

这句话中有3个关键词:用户、行为、关联关系。

衍生出如下几个问题

关于用户

  • 用户是怎么分类的(用户角色)
  • 用户和用户之间是否有关系?如果有,是什么关系?关系是什么结构的?
    • 如公司组织架构那种层级分明的树形结构

关于行为

  • 怎么将行为分类(一般来说按照行为目的区分、按照行为业务类别区分、按照行为与系统的交互类型区分)
    • 例如,按照行为与系统的交互类型区分
      • 数据权限:指的是用户有权操作的那部分数据(读、写)
      • 功能权限:对使用人群在功能修改使用等方面权利的限制
  • 行为之间是否有层级和依赖关系,是怎么样的依赖关系

关于关联关系

  • 是一对一还是一对多,如果有父子层级之分,是继承关系还是独立存在。

这是概念层的问题,具体到工作的设计当中,用于梳理需求会有一些帮助,主要还是用于梳理基础概念。

一句话概括就是:权限系统维护的是人和可进行行为的关联关系。

那么系统的每个用户可以看做是一堆可以进行的行为的集合。

这句话有点不好理解的话,你就按照用户画像那么理解,在权限系统里,每个用户身上打满了一堆可以进行行为的标签。

<img src="https://pic4.zhimg.com/dedc9917bf9a5380f155424ddb79e3c3_b.png" data-rawwidth="695" data-rawheight="370" class="origin_image zh-lightbox-thumb" width="695" data-original="https://pic4.zhimg.com/dedc9917bf9a5380f155424ddb79e3c3_r.jpg">

那么权限控制系统的原理呢? 其实很简单,就是: 用户在访问时,通过了解用户具有的可以进行的行为的集合,决定用户可以看到什么菜单,以及在什么菜单下能使用什么功能,并且具备什么样操作数据的能力。

了解完概念,那么在动手之前,是了解清楚需求及目前的解决方案。 比如: 现在都有什么类型的用户? 每个类型的用户在使用功能上有什么区分? 现在一级菜单和二级菜单都有哪些? 每个页面上面通用的和需要控制的功能都有什么? 哪些数据的读写需要根据用户身份做区分? PS:大部分没有权限控制之前,很多权限控制是写死在代码里了,需要梳理清楚,避免踩坑。

好了,其实回答完以上问题,应该能了解自己或公司对权限系统的基本需求了,按照我的习惯,就可以着手开始写use case了。

具体的情况,具体分析,最大的难点在于对现有情况的了解,了解清楚现有情况,其实设计难度不大。

更多阅读:RBAC权限管理         

https://blog.csdn.net/painsonline/article/details/7183613/

 

转载于:https://www.cnblogs.com/hao-1234-1234/p/9850967.html

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

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

相关文章

不错的学习网站

2019独角兽企业重金招聘Python工程师标准>>> 百度: http://naotu.baidu.com/ http://fis.baidu.com/ http://fex.baidu.com/ https://github.com/fex-team/fex-edu http://fex.baidu.com/blog/2014/05/build-performance-monitor-in-7-days/ http://www.…

搜索引擎提交工具_钦州SEO优化_SEO工具常用的有哪些大盘点,做SEO优化不再累...

发布时间:2020-11-06 08:11:48现在的搜索引擎中,已经有大量的或免费,或付费的seo工具,总的来讲,可以分为几个大类,包括但不限于网站管理员工具,外链查询工具,seo综合查询工具,关键词…

如何使用Apache的ab工具进行网站性能测试

Apache服务器自带了ab压力测试工具,可以用来测试网站性能,使用简单方便。 工具/原料 Apache 方法/步骤 打开Apache服务器的安装路径,在bin目录中有一个ab.exe的可执行程序,就是我们要介绍的压力测试工具。 在Windows系统的命令行下…

网站服务器宕机,B站服务器宕机 股价短线走低冲上热搜 官方回复称因机房故障...

中华网财经7月14日讯,昨日晚间,哔哩哔哩弹幕网(简称“B站”)B站网页出现访问故障,客户端、网页版打开均无法加载内容。#B站崩了#话题登上微博热搜。多位网友表示,自己的B站已加载不出内容。凌晨2点20分,B站在微博发布声…

SharePoint 2013 新建网站集图解

SharePoint 2013 新建网站集图解 原文:SharePoint 2013 新建网站集图解前言:接触SharePoint的人可能是越来越多,但是很多人一接触就很迷茫,在技术群里问如何新建网站集,这样一篇图解,帮助新手学习在搭建好SharePoint环…

WordPress设计bug+WooCommerce漏洞导致网站存在被劫持风险

WordPress权限系统插件的设计缺陷和WooCommerce(流行电子商务插件)中的文件删除漏洞可允许***者获得对WordPress网站的完全控制权。Automattic公司推出的WooCommerce是一个很受欢迎的WordPress插件,它可以添加电子商务功能,这样网…

配置Exchange OWA和Sharepoint网站单点登录

配置Exchange OWA和Sharepoint网站单点登录如果我们在组织中已经部署完成了Lync、Exchange以及Sharepoint,那么我们会发现这三套系统在通过域账户登录计算机时,如果本机有安装Outlook和Lync,那么在登录Lync或启动Outlook的时候就会自动使用当…

网站预加载进度条的实现

我们经常会看到,一些站点在首次进入的时候会先显示一个进度条,等资源加载完毕后再呈现页面,大概像这样:然后整个页面的操作就会非常流畅,因为之后没必要再等待加载资源了。尤其是在移动端,或者是页游中&…

ai字体素材网站_4个网站,涵盖几乎所有素材,字体、设计、图片各种资源管够...

最近发现了几个优质的网址导航,收录了各类素材网站,提供各类字体素材、高清图片、在线设计网站,还有很多办公小工具。01字体酷站https://www.fonturl.com/ 全球最大的字体网址导航网站网站收录了大量优质字体素材,左侧为各种字体相…

关于移动端架构的好的学习网站

1、这个主要讲IM SDK架构的设计: http://tech.youzan.com/you-zan-im-sdk-ke-hu-duan-she-ji/ 2、这个http://casatwy.com 关于IOS应用架构的内容比较多哦,而且很不错哦。 转载于:https://www.cnblogs.com/goodboy-heyang/p/4675814.html

对学校公开课信息网站一次渗透测试

首先在班群里看见有公开课报名链接,于是打算随意试试。毕竟看到网站试运行,嘿嘿嘿。 打开网站,是这样的: 看到有上传信息的网页: 点击后页面信息如下: 看到查看信息的按钮,说明这里有数据库交互…

wordpress网站后台打开速度很卡很慢解决方法?

为什么80%的码农都做不了架构师?>>> wordpress网站后台打开速度很慢的原因: wordpress使用了Open Sana字体,该字体的文件存放在美国Google的服务器上。当你打开网站的时,左下角会一直加载fonts.googleapis.com信息&am…

PageAdmin CMS网站建设教程:如何实现信息的定时发布

PageAdmin Cms发布文章时候有一个上线时间设置和下线时间设置,网站编辑人员可以利用这个功能来实现定时发布,在信息发布界面,如下图: 设置后就会自动加入定时任务中,注意这个功能需要再系统设置>>自动任务执行间…

html中 主标题与副标题,wordpress首页SEO:让主标题+副标题作为页面title

很喜欢用wordpress,主要原因还是在于网络上有无穷无尽的模板主题。但有的时候,很多模板主题设置后,网站首页的title只显示网站的名称,这对于品牌站来说,也许正合适,但对于小站来说,却不太适合SE…

使用varnish + nginx + lua搭建网站的降级系统

前言通常一个网站数据库挂掉后,后果将是非常严重的。基本上整个网站基本不可用了。对于一些网站来说,当数据库挂掉后,如果能提供基本的浏览服务,也是不错的。本文将尝试使用 varnish nginx lua 搭建网站降级系统来实现整个目标。…

一个好的网站,应该用什么样的空间or服务器?建站基础知识普及

今天就针对服务器这块给大家普及这块知识,记得分享哦~定义服务器指一个管理资源并为用户提供服务的计算机软件,通常分为文件服务器、数据库服务器和应用程序服务器。运行以上软件的计算机或计算机系统也被称为服务器。一般俗称的“网站空间”就是专业名词…

读书笔记-大型网站技术架构(核心原理与案例分析)

一、大型网站架构演化 1.1 大型网站软件系统的特点 高并发、大流量;高可用;海量数据;用户分布广泛,网络情况复杂;安全环境恶劣;需求快速变更,发布频繁;渐进式发展; 1.2 大…

利用requests库访问网站

1、关于requests库 函数 Response对象包含服务器返回的所有信息,也包含请求的Request信息。 访问百度二十次 import requests def getHTMLText(url):try:rrequests.get(url,timeout30)r.raise_for_status()r.encodingutf-8return r.status_codeexcept:return"&…

夺命雷公狗---微信开发57----微网站之jquery_mobile之入门案例

这节课我们主要用到到jquery_mobile来实现一个点电影播放网站 jquery_mobile(简称JQM)其实就是基于jquery开发出来的一套移动端框架,适应移动用户端市场对浏览与体验从而进一步的提升 jquery_mobile控件介绍 jquery_mobile的语法将各个控件(w…

关于大型网站技术演进的思考(一)--存储的瓶颈(1)

前不久公司请来了位互联网界的技术大牛跟我们做了一次大型网站架构的培训,两天12个小时信息量非常大,知识的广度和难度也非常大,培训完后我很难完整理出全部听到的知识,今天我换了个思路是回味这次培训,这个思路就是通…