数据权限处理

数据权限就该这么实现(设计篇)_java数据权限实现方案_Java技术攻略的博客-CSDN博客

添加数据规则表和数据规则组表,role表中再加上数据规则组ids的字符串字段,多个数据规则组用逗号隔开,编写代码时,在mapper层上加自定义的权限注解,标识需要对sql进行数据权限处理,即添加数据规则,注解中加上一个属性,表示你这个mapper的sql语句需要用哪个规则组来改造sql语句。(废弃)

通用版:使用注解,AOP中截取注解,并将权限sql放在threadlocal中,mybatis拦截器中再去具体实现权限sql,从而放到对应的业务sql中使用

优点:简单,当部门的层级结构不是很多的时候用他比较合适

缺点:当层级机构很多时,这种方式是要获取当前层级及其底下的所有的部门id的,所以如果层级很多,那么最终业务sql中的in (xx,xxx)数据就会很多

进阶版:和通用版差不多,首先将用户的层级结构缓存起来/xxx/xxx/xxx,然后将此层级缓存到threadlocal中,threadlocal中应该是{alias}.{fieldName} like concat ('/xxx/xxx/xxx', '%')

在mybatis拦截器中再根据注解将{alias}.{fieldName}换成具体的值。

优点:数据量比较大时也不用害怕sql文本会比较大

缺点:对应的业务表需要要对应的字段来表示哪一层(xx/xx)的权限可以查看当前这条数据。

es简单数据权限处理:

https://blog.csdn.net/u011487470/article/details/125275455

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值