美文网首页
关于功能权限和数据权限的思考

关于功能权限和数据权限的思考

作者: 淡淡的小番茄 | 来源:发表于2023-02-14 19:10 被阅读0次

背景

RBAC是Role-BasedAccess Control的英文缩写,意思是基于角色的访问控制。这块的功能大家已经比较熟悉了。建设任何一个系统都会包含这些。理论归理论,理论做的好,实践不一定做的好。尽管实践需要理论来指导。最近一直在设计Pass系统的用户账户体系,对于功能权限和组织权限有一些自己的见解,想和大家分享。

一些概念

功能权限

系统中的各种功能点,比如:设备相关的管理操作。在进行逻辑模型设计的时候,可能就是对应数据库中的一张菜单表,我们称之为:功能菜单。菜单会对应一个页面,页面会有很多的元素:组件、按钮、超链接,其中能操作的元素,我们称之为动作。

数据权限

首先我需要拥有功能菜单的权限,然后我们就要考虑,我能访问的数据权限。还是以设备列表为例,比如:我拥有查询设备的权限,但是我肯定不能查询所有的设备,对于这些设备数据的权限控制,我们称之为数据权限。功能权限和数据权限结合,构成了整个权限系统,能解决90%以上的业务上的权限管理问题。

角色

角色是功能的集合,解决的是功能权限设置问题,不解决数据权限的问题。

了解了这些基本概念后,我们切入正题,来聊一聊功能权限与数据权限的问题。

功能权限与数据权限

在可视化的功能页面配置过程中,我们遇到个问题:系统可以对页面进行可视化编辑的。其中,页面有很多组件构成,通过可视化的拖拽组件来实现页面开发,生产页面的功能。实体关系如下:

在这个场景中,功能权限与数据权限的边界比较难界定。以一个“链接”功能按钮为例子,其是设备列表组件内的一个动作元素,其是功能的范畴。但是这个连接会指向一个新的菜单。前面说过,其实菜单属于功能范畴。我们基于这个前提,讨论了N久,一直没有将整个业务梳理清楚,总是感觉模型抽象得不是很好,无法很好支持后期的扩展。

理越辩越明,道越论越清。慢慢的我们意识到,这里面会有两层的意思。第一层是功能权限,比如我能不能看到这个链接按钮。这块可以通过角色来实现。其实,链接也是一种动作,类似于查询。如果是查询,我们很容易将访问的部分理解为资源。链接是快捷方式访问到另一个具体的页面,一个已经存在的URL。为了便于理解,我们可以将链接的页面理解为资源,其背后隐藏了一个授权的动作:就是我将这个资源授权给你访问。这样就理清了整个逻辑模型,使用这套模型方便后续的扩展。

相关文章

  • 关于功能权限和数据权限的思考

    背景 RBAC是Role-BasedAccess Control的英文缩写,意思是基于角色的访问控制。这块的功能大...

  • 权限管理

    权限管理分为 功能权限和数据权限 功能权限: 哪些人可以做什么操作数据权限: 哪些人可以看哪些数据 数据库表设计 ...

  • 系统权限设计

    一、客户需求 系统权限包含功能权限,操作权限,数据权限。功能权限比较好理解,有则功能可见,没有则不可见。接口权限也...

  • 通用数据权限设计——列权限(一)

    概念 笔者认为WEB系统权限应归纳为功能权限,数据权限,字段权限 功能权限:即菜单、按钮、超链接等,控制用户能否访...

  • 权限体系解析 功能&数据

    1. 权限体系概要 权限是所有应用都需要考虑的问题。从方向上来说,权限可以分为功能权限和数据权限,功能权限指你能发...

  • 产品 | 权限设计=功能权限+数据权限

    权限设计=功能权限+数据权限 权限管理 Authority Management 目前主要是通过用户、角色、资源三...

  • 2、用户权限管理,数据库表设计

    一、权限设计 网上资料说权限设计 = 功能权限 + 数据权限,我认为还是很有道理的。之前项目中只涉及到功能权限,没...

  • SpringCloud微服务实战——搭建企业级开发框架(二十八)

      一套完整的系统权限需要支持功能权限和数据权限,前面介绍了系统通过RBAC的权限模型来实现功能的权限控制,这里我...

  • 关于权限管理的设计

    在做b端产品,不可避免的遇到权限管理,权限设计,根据什么样的角色,授予什么样的权限,然而权限还涉及到数据权限和功能...

  • 数据权限控制

    1. 数据权限是什么? 在讲数据权限之前,要先说一下功能权限;功能权限一般的管理后台系统都会涉及到;即:某个人拥有...

网友评论

      本文标题:关于功能权限和数据权限的思考

      本文链接:https://www.haomeiwen.com/subject/senekdtx.html