大家好,我是汤师爷~
今天来来聊聊权限的概念模型设计。
权限的概念模型
用户
在权限模型中,用户是系统权限控制的核心对象,也是所有操作行为的直接主体。用户的权限决定了他们在系统中能够访问哪些资源,以及能执行哪些操作。
用户代表系统中的实际操作人员,根据系统场景不同,可划分为:
C端用户:如普通消费者。
B端用户:系统内部的员工,可能来自不同部门,承担着不同的职责。
每个用户都有唯一的身份标识,用于在系统中进行身份验证和权限校验。用户的基本信息通常包括:用户名、密码、状态等信息。
角色
角色是权限模型中连接用户和权限的桥梁。它代表一组权限的集合,通常对应组织中的职位或职责,如管理员、运营经理、店长等。通过将权限赋予角色,再将角色分配给用户,系统可实现灵活高效的权限管理。角色设计需考虑以下几点:
职责对应:角色应清晰反映用户的工作职责,避免职责重叠或模糊。
权限适当:为角色分配合适的权限,确保工作顺利进行,同时避免权限过大造成安全隐患。
灵活可扩展:调整权限时,只需修改角色的权限集合,所有关联该角色的用户权限都会随之更新。
通过设计合理的角色,企业能有效管理用户权限,大幅降低权限分配和维护的复杂度。
用户组
用户组是权限模型中的重要工具,用于将权限需求相似的用户集合在一起,实现统一管理和高效授权。
通过将用户添加到用户组,并为用户组分配角色或权限,系统可以简化权限管理流程,提升管理效率。用户组可以适配多种业务需求,例如:
部门级别的权限管理:将同一部门的用户加入一个用户组,统一管理权限。
项目级别的权限管理:将参与同一项目的用户加入一个用户组,赋予项目所需的权限。
职位
职位是用户在组织中的职务和职责的具体体现,也是权限模型中划分权限的重要依据。通过职位,可以为用户分配符合其职责范围的权限,确保权限控制精细化与业务需求一致。
不同职位对应不同的权限需求,随着职务范围的扩大,权限逐级递增。常见的权限划分包括:
普通员工:仅能访问与执行日常工作相关的功能,如商品上下架、订单处理和发货管理。
部门经理:除拥有普通员工的权限外,还可管理部门业务,如审核下属的申请单和查看部门绩效数据。
高级管理层:拥有全局视角,可访问所有功能,包括查看经营报表、财务报表,以及制定业务策略。
一个职位通常对应一个角色,例如"财务经理"职位对应"财务管理角色"。然而,某些复杂职位可能需要多个角色来完成其职责。比如,"运营总监"可能同时需要"运营角色"和"人力资源角色"。
通过职位分配权限,我们可以确保用户只能访问与其职责相关的资源,从而避免不必要的权限滥用。
功能权限
功能权限控制着用户在系统中可使用的功能模块、可访问的页面以及可执行的操作。简单来说,它决定了你能看到哪些菜单、访问哪些页面、点击哪些按钮。
功能权限的控制粒度通常包括:模块权限、页面权限、按钮权限和字段权限。
数据权限
数据权限通过对列表数据的行级控制,实现不同用户在系统中拥有不同的数据查看范围。
实现数据权限的关键是明确数据规则的控制维度,常见的维度包括:
创建人:按数据的创建者限制访问范围。
组织单元:基于数据所属的组织单元划定访问范围。
业务线:按数据所属的业务线划分访问范围。
以下是数据权限在实际业务中的常见应用:
RBAC权限模型示例
展示了RBAC权限模型示例。SaaS平台下可以管理多个租户,每个租户(如总部A、B、C)有独立组织结构,保证数据隔离和系统灵活性。
每个租户都有独立的组织架构,租户内可添加多用户,实现人员管理。
一个角色可以关联多个功能模块。例如,"店长"角色可能包括收银、商品、库存、客户、财务和员工管理等功能,覆盖门店运营所需的各项功能。
数据权限也很关键。用户"张三"的数据访问仅限于门店A,确保信息安全。
总部层面权限分配也类似。例如,"李四"作为"运营总监",拥有更广泛的权限,可查看跨店数据(分公司A下的所有门店数据),全面掌控业务运营。
这种权限设计满足复杂业务需求,并为未来发展留有余地。通过合理配置,SaaS平台能为各类企业提供精准权限控制。
本文已收录于,我的技术网站:tangshiye.cn 里面有,算法Leetcode详解,面试八股文、BAT面试真题、简历模版、架构设计,等经验分享。
本文来自博客园,作者:架构师汤师爷,转载请注明原文链接:https://www.cnblogs.com/tangshiye/p/18541168
为您推荐
来源:AMZ123跨境电商作者:阿飞@AMZ123Temu 美国站的黑五大促已经正式进入预热阶段——活动自 10 月 9 日 14:00 启动,将持续至 11 月 29 日 15:59,整整 51 天。作为 Temu 今年在海外市场的重头戏,这场为期近两个..
CV领域小模型发展自2012年AlexNet在ImageNet大规模视觉识别挑战赛(ILSVRC)中以显著优势夺冠以来,计算机视觉(CV)领域进入了深度学习驱动的新纪元。AlexNet首次大规模使用卷积神经网络(CNN)进行图像分类,其成..
系统设计任何系统设计都可以用schema表示,不管画什么设计图,其核心思路就是找层级和关系。所以任何系统都可以用树型结构表达!用树型结构表达局限在于,树是个二维结构。系统可以有不同维度的树,有了不同维度的树..
诺诺婚恋交友系统1、系统基于TP6+Uni-app框架开发;客户移动端采用uni-app开发,管理后台TH6开发。2、系统支持微信公众号端、微信小程序端、H5端、PC端多端账号同步,可快速打包生成APP;3、准备了完善的后台管理,..
数据模型的设计是编辑器的核心基础,其直接影响了选区模型、DOM模型、状态管理等模块的设计。例如在quill中的选区模型是index + len的表达,而slate中则是anchor + focus的表达,这些都是基于数据模型的设计而来的。..
大家好,我是汤师爷~和退款单作为整个交易逆向系统的核心,支撑着售后管理环节。售后域核心概念模型1、退款单退款单是记录和跟踪退款处理过程的核心业务单据,包含以下关键信息:租户ID:标识所属商户或组织退款单ID..
责任是指个人或组织在特定角色或情境下应履行的义务或承担的任务。它通常涉及对行为、决策及其后果的负责。责任可以分为多个方面:道德责任:基于社会道德规范,个人或组织应对自己的行为负责。法律责任:根据法律规..
在前端开发中,性能优化是一个永恒的话题。回流(Reflow)与重绘(Repaint)是两个重要的概念,它们直接影响着页面的渲染性能和用户体验。本文将详细介绍回流与重绘的概念、触发条件及其优化方法。一、回流(Reflow..
大家好,我是汤师爷~什么是订单履约系统?订单履约是从消费者下单支付到收到商品的全流程管理过程,包括订单接收、订单派单、库存分配、仓储管理和物流配送等环节,核心目标是确保商品准时、准确地送达消费者手中。..
微软发布了VS Code AI工具包,增强了代码编辑器的AI功能!微软推出了VS Code AI工具包,这是一个全新的扩展,旨在将AI功能集成到Visual Studio Code中。该工具包支持多种AI模型,包括本地和远程模型,用户可以配置自..
平台介绍LinkWeChat是一款基于企业微信的开源SCRM系统,为企业构建私域流量系统的综合解决方案,显著提升企业社交运营效率!内置功能环境部署准备工作JDK >= 1.8 (推荐1.8版本)Mysql >= 5.5.0 (推荐5.7版本)Redis >=..
有很多读者经常问我,程序员的学习、成长之路应该怎么规划,才能早日成为一名架构师。作为一个曾经的架构师,在我走上技术管理这条路之后,管理的团队越来越大,现在我管理的技术团队有一百多人,最大的体会就是操心..
鸿蒙(HarmonyOS)和 OpenHarmony 系统本身并不原生支持直接运行 .NET Core,但可以通过一些方法使 .NET Core 应用在其上运行。鸿蒙和 OpenHarmony 是基于 LiteOS 和 Linux 内核的多终端操作系统,因此它们的运行时..
我们可以自己写个类,用来做登陆权限验证,例如创建一个WebAuth.cs类,继承AuthorizeAttribute类, 在该类中重写方法: public override void OnAuthorization(AuthorizationContext filterContext) { base.OnAutho..
产生界面混乱的主要原因是,winform程序的坐标是基于点(Point)的,而Point又与DPI相关。一英寸 = 96pixels96DPI是windows的默认DPI,当它被用户更改后,可能就会导致界面与设计之初产生了错乱。在网上搜索相关资料后..
管道,PipelineASP.NET Core 路由,认证,绘画,缓存,都是由管道来处理的中间件。MVC WEB API,都是建立在某个特殊的中间件之上。MVC,路由的中间件,请求地址和控制器之间的映射,在此基础上实现了实例化控制器,..
在软件系统里面,功能性需求是面向用户、详细明确的需求,由产品人员根据市场的需要提炼出来,是产品生命周期里最重要的一环。比如电商系统里面的优惠券功能,通常包含需求:优惠券分类、细分领券人群、核销优惠券等..
什么是Quartz.NETQuartz.NET是一个流行的开源作业调度框架,可以用于在.NET应用程序中进行作业调度。它是Quartz调度器的.NET实现,提供了高度可定制化的作业调度功能,支持复杂的作业调度需求。Quartz.NET可以让您创..
vercel 免费playground地址:https://play.vercel.ai/无需登录,无需翻墙就可以免费使用vercel AI工具,支持GPT3.5,GPT-4 和 claude 等20多个模型,下面是我是用的截图。速度也很快,国内可以直接使用。..
DevEco Studio 是华为推出的一款面向华为终端全场景多设备的集成开发环境(IDE),为开发者提供工程模板创建、开发、编译、调试、发布等E2E的HarmonyOS应用开发服务。DevEco Studio官网:https://developer.harmonyo..