ruoyi数据权限设置

本文介绍了 Ruoyi 框架中的数据权限设置,包括基于部门的数据权限、@DataPermission 注解的使用以及自定义数据权限规则。通过配置和拦截器,实现了在查询、更新和删除时自动过滤数据,简化了数据权限的开发和维护。
摘要由CSDN通过智能技术生成

目录
数据权限
数据权限,实现指定用户可以操作指定范围的数据。例如说,针对员工信息的数据权限:

用户 数据范围
普通员工 自己
部门领导 所属部门的所有员工
HR 小姐姐 整个公司的所有员工
上述的这个示例,使用硬编码是可以实现的,并且也非常简单。但是,在业务快速迭代的过程中,类似这种数据需求会越来越多,如果全部采用硬编码的方式,无疑会给我们带来非常大的开发与维护成本。

因此,项目提供 yudao-spring-boot-starter-biz-data-permission (opens new window) 技术组件,只需要少量的编码,无需入侵到业务代码,即可实现数据权限。

友情提示:数据权限是否支持指定用户只能查看数据的某些字段?

不支持。权限可以分成三类:功能权限、数据权限、字段权限。

字段权限的控制,不属于数据权限,而是属于字段权限,会在未来提供,敬请期待。

1. 实现原理

yudao-spring-boot-starter-biz-data-permission 技术组件的实现原理非常简单,每次对数据库操作时,他会自动拼接 WHERE data_column = ? 条件来进行数据的过滤。

例如说,查看员工信息的功能,对应 SQL 是 SELECT * FROM system_users,那么拼接后的 SQL 结果会是:

用户 数据范围 SQL
普通员工 自己 SELECT * FROM system_users WHERE id = 自己
部门领导 所属部门的所有员工 SELECT * FROM system_users WHERE dept_id = 自己的部门
HR 小姐姐 整个公司的所有员工 SELECT * FROM system_users 无需拼接
明白了实现原理之后,想要进一步加入理解,后续可以找时间 Debug 调试下 DataPermissionDatabaseInterceptor (opens new window) 类的这三个方法:

#processSelect(…) 方法:处理 SELECT 语句的 WHERE 条件。
#processUpdate(…) 方法:处理 UPDATE 语句的 WHERE 条件。
#processDelete(…) 方法:处理 DELETE 语句的 WHERE 条件。

2. 基于部门的数据权限

项目内置了基于部门的数据权限,

  • 4
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值