扫码阅读
手机扫码阅读
功能权限与数据权限傻傻分不清楚
209 2024-08-06
我们非常重视原创文章,为尊重知识产权并避免潜在的版权问题,我们在此提供文章的摘要供您初步了解。如果您想要查阅更为详尽的内容,访问作者的公众号页面获取完整文章。
查看原文:功能权限与数据权限傻傻分不清楚
文章来源:
码农周星星
扫码关注公众号
权限设计方案概述
许多开发者在编写代码多年后仍然无法明确区分功能权限与数据权限的设计。功能权限涉及用户可以访问的菜单、按钮和操作的功能,而数据权限则涉及用户能够看到和操作的数据。
传统权限设计方案
常见的设计方案将功能权限与数据权限结合起来,通过角色关联菜单进行控制,并且初始化几个角色来控制数据权限。此外,使用组织ID控制数据可见性,以及使用功能角色进行业务流程控制。这种设计方案虽然能够从宏观上控制用户的功能,但在数据权限的控制上存在耦合问题,维护难度高,且不够灵活。
软件设计原则
软件设计应遵循七大原则,包括开闭原则、依赖倒置原则、单一职责原则、接口隔离原则、迪米特法则、里氏替换原则和合成复用原则。
新版权限设计方案
新版设计方案的目标是实现功能权限与数据权限、流程控制的低耦合。用户功能权限通过五表模式控制,业务流程控制使用岗位表和业务流程配置表,以及基于组织和用户类型的数据权限控制。这种新方案提高了数据权限的灵活性和精细度,能够更好地满足不同业务场景需求。
代码层面的权限查询实现
在代码层面,不同的数据权限查询应避免将权限控制逻辑写入SQL语句中,以降低维护难度。数据权限的设计应根据业务功能紧密相关,没有一成不变的最佳设计,而是应该根据具体场景制定最合适的解决方案。
想要了解更多内容?
查看原文:功能权限与数据权限傻傻分不清楚
文章来源:
码农周星星
扫码关注公众号
码农周星星的其他文章
开源项目ZXX-CAS系统从零到一|第二篇:后端基础架构搭建
ZXX-CAS如何基于spring boot搭建自己的基础框架呢,搭建基础框架又需要解决哪些问题呢?
k8s + spring boot + Eureka如何平滑上下线服务
上篇介绍了springboot+Euraka服务平滑上下线的方式,有部分小伙伴反馈k8s环境下有一些办法也可以解决这个平滑过度问题,为了解决这个问题,研究了一下目前我这边服务上k8s平滑过度的方案,分享给大家
突然委派你去一个陌生的城市负责项目,应该怎么办?
想必各位做项目的小伙伴,经常会接受到一些委派的任务,比如说突然安排你去一个不熟悉的城市,支持本地团队,推动项目进展,负责项目管理相关内容。但是对于一些缺少项目经验的小伙伴来说,在没有领导明确目标要求的情况下,就会变更很迷茫,缺少动力和方向。
开源项目ZXX-CAS系统从零到一|第一篇:需求分析
ZXX-CAS系统是一个什么样的系统呢?为什么要从零到一分享整个这个开源的项目的教程呢?这个系统又能解决什么问题呢?
ClickHouse基于docker单机版本安装与应用教程
ClickHouse基于docker单机版本安装与应用教程。
加入社区微信群
与行业大咖零距离交流学习
软件研发质量管理体系建设
白皮书上线