写点什么

权限系统:6 个权限概念模型设计

  • 2024-11-13
    福建
  • 本文字数:1672 字

    阅读完需:约 5 分钟

今天来来聊聊权限的概念模型设计。


权限的概念模型



用户


在权限模型中,用户是系统权限控制的核心对象,也是所有操作行为的直接主体。用户的权限决定了他们在系统中能够访问哪些资源,以及能执行哪些操作。


用户代表系统中的实际操作人员,根据系统场景不同,可划分为:


  • C 端用户:如普通消费者。

  • B 端用户:系统内部的员工,可能来自不同部门,承担着不同的职责。


每个用户都有唯一的身份标识,用于在系统中进行身份验证和权限校验。用户的基本信息通常包括:用户名、密码、状态等信息。


角色


角色是权限模型中连接用户和权限的桥梁。它代表一组权限的集合,通常对应组织中的职位或职责,如管理员、运营经理、店长等。通过将权限赋予角色,再将角色分配给用户,系统可实现灵活高效的权限管理。角色设计需考虑以下几点:


  • 职责对应:角色应清晰反映用户的工作职责,避免职责重叠或模糊。

  • 权限适当:为角色分配合适的权限,确保工作顺利进行,同时避免权限过大造成安全隐患。

  • 灵活可扩展:调整权限时,只需修改角色的权限集合,所有关联该角色的用户权限都会随之更新。


通过设计合理的角色,企业能有效管理用户权限,大幅降低权限分配和维护的复杂度。


用户组


用户组是权限模型中的重要工具,用于将权限需求相似的用户集合在一起,实现统一管理和高效授权。

通过将用户添加到用户组,并为用户组分配角色或权限,系统可以简化权限管理流程,提升管理效率。用户组可以适配多种业务需求,例如:


  • 部门级别的权限管理:将同一部门的用户加入一个用户组,统一管理权限。

  • 项目级别的权限管理:将参与同一项目的用户加入一个用户组,赋予项目所需的权限。


职位


职位是用户在组织中的职务和职责的具体体现,也是权限模型中划分权限的重要依据。通过职位,可以为用户分配符合其职责范围的权限,确保权限控制精细化与业务需求一致。


不同职位对应不同的权限需求,随着职务范围的扩大,权限逐级递增。常见的权限划分包括:


  • 普通员工:仅能访问与执行日常工作相关的功能,如商品上下架、订单处理和发货管理。

  • 部门经理:除拥有普通员工的权限外,还可管理部门业务,如审核下属的申请单和查看部门绩效数据。

  • 高级管理层:拥有全局视角,可访问所有功能,包括查看经营报表、财务报表,以及制定业务策略。


一个职位通常对应一个角色,例如"财务经理"职位对应"财务管理角色"。然而,某些复杂职位可能需要多个角色来完成其职责。比如,"运营总监"可能同时需要"运营角色"和"人力资源角色"。


通过职位分配权限,我们可以确保用户只能访问与其职责相关的资源,从而避免不必要的权限滥用。


功能权限


功能权限控制着用户在系统中可使用的功能模块、可访问的页面以及可执行的操作。简单来说,它决定了你能看到哪些菜单、访问哪些页面、点击哪些按钮。


功能权限的控制粒度通常包括:模块权限、页面权限、按钮权限和字段权限。


数据权限


数据权限通过对列表数据的行级控制,实现不同用户在系统中拥有不同的数据查看范围。


实现数据权限的关键是明确数据规则的控制维度,常见的维度包括:


  • 创建人:按数据的创建者限制访问范围。

  • 组织单元:基于数据所属的组织单元划定访问范围。

  • 业务线:按数据所属的业务线划分访问范围。


以下是数据权限在实际业务中的常见应用:



RBAC 权限模型示例



展示了 RBAC 权限模型示例。SaaS 平台下可以管理多个租户,每个租户(如总部 A、B、C)有独立组织结构,保证数据隔离和系统灵活性。


每个租户都有独立的组织架构,租户内可添加多用户,实现人员管理。


一个角色可以关联多个功能模块。例如,"店长"角色可能包括收银、商品、库存、客户、财务和员工管理等功能,覆盖门店运营所需的各项功能。


数据权限也很关键。用户"张三"的数据访问仅限于门店 A,确保信息安全。


总部层面权限分配也类似。例如,"李四"作为"运营总监",拥有更广泛的权限,可查看跨店数据(分公司 A 下的所有门店数据),全面掌控业务运营。


这种权限设计满足复杂业务需求,并为未来发展留有余地。通过合理配置,SaaS 平台能为各类企业提供精准权限控制。


文章转载自:架构师汤师爷

原文链接:https://www.cnblogs.com/tangshiye/p/18541168

体验地址:http://www.jnpfsoft.com/?from=infoq

用户头像

还未添加个人签名 2023-06-19 加入

还未添加个人简介

评论

发布
暂无评论
权限系统:6个权限概念模型设计_数据库_不在线第一只蜗牛_InfoQ写作社区