功能权限与数据权限傻傻分不清楚
版权声明
我们非常重视原创文章,为尊重知识产权并避免潜在的版权问题,我们在此提供文章的摘要供您初步了解。如果您想要查阅更为详尽的内容,访问作者的公众号页面获取完整文章。
码农周星星
扫码关注公众号
扫码阅读
手机扫码阅读
权限设计方案概述
许多开发者在编写代码多年后仍然无法明确区分功能权限与数据权限的设计。功能权限涉及用户可以访问的菜单、按钮和操作的功能,而数据权限则涉及用户能够看到和操作的数据。
传统权限设计方案
常见的设计方案将功能权限与数据权限结合起来,通过角色关联菜单进行控制,并且初始化几个角色来控制数据权限。此外,使用组织ID控制数据可见性,以及使用功能角色进行业务流程控制。这种设计方案虽然能够从宏观上控制用户的功能,但在数据权限的控制上存在耦合问题,维护难度高,且不够灵活。
软件设计原则
软件设计应遵循七大原则,包括开闭原则、依赖倒置原则、单一职责原则、接口隔离原则、迪米特法则、里氏替换原则和合成复用原则。
新版权限设计方案
新版设计方案的目标是实现功能权限与数据权限、流程控制的低耦合。用户功能权限通过五表模式控制,业务流程控制使用岗位表和业务流程配置表,以及基于组织和用户类型的数据权限控制。这种新方案提高了数据权限的灵活性和精细度,能够更好地满足不同业务场景需求。
代码层面的权限查询实现
在代码层面,不同的数据权限查询应避免将权限控制逻辑写入SQL语句中,以降低维护难度。数据权限的设计应根据业务功能紧密相关,没有一成不变的最佳设计,而是应该根据具体场景制定最合适的解决方案。
码农周星星
码农周星星
扫码关注公众号
还在用多套工具管项目?
一个平台搞定产品、项目、质量与效能,告别整合之苦,实现全流程闭环。
查看方案
码农周星星的其他文章
系统架构设计师32小时通关笔记:三、数据库与网络基础知识
第三章主要介绍数据与网络基础知识。
策略模式-如何避免注入为NULL问题
如果设计一个支付功能,如何根据关键key去调用不同的支付功能呢?这个时候策略模式就可以大显身手啦,但是在使用策略模式的时候,会出现注入service层为NULL的情况,那应该怎么解决呢?
技术管理实施20个月之后,效果如何?
2022年7月开始考虑需要对技术团队管理进行管理革新,才能解决技术团队目前面临的问题,遂开始研究如何做技术管理-全流程路径。至2024年8月31日已经施行20个月,那这20个月的制度施行效果如何呢?
突然安排你当技术负责人怎么办?
“ 本来只是码农一枚,突然领导安排你当后端技术负责人,手动无措,惊慌失措,不知该如何开展工作?原本都是一起吃
应该如何度过人生的每个低谷时期-学生时代
古人云:三十年河东,三十年河西,对于人生这一次旅途中,难免有各种各样的低谷期,出现在不同的时期,那出现了这些低谷期应该怎么办呢?
加入社区微信群
与行业大咖零距离交流学习
PMO实践白皮书
白皮书上线
白皮书上线