(19)国家知识产权局
(12)发明 专利申请
(10)申请公布号
(43)申请公布日
(21)申请 号 202210818583.3
(22)申请日 2022.07.13
(71)申请人 浪潮软件科技有限公司
地址 250100 山东省济南市高新区浪潮路
1036号浪潮科技园
(72)发明人 王胜孟 张厚森 张健 刘翔
(74)专利代理 机构 济南信达专利事务所有限公
司 37100
专利代理师 姜丽洁
(51)Int.Cl.
G06F 21/60(2013.01)
G06F 16/25(2019.01)
G06F 16/242(2019.01)
(54)发明名称
一种数据隔离及多租户实现方法及系统
(57)摘要
本发明涉及web后端开发领域, 具体提供了
一种数据隔离及多租户实现方法, 首先判断是否
有数据隔离标志,如果没有放行,如果有,获取
mapper对应实体类; 再判断租户隔离是否启用,
若是, 则向sql添加租户, 再判断数据是否隔离;
否的话, 直接判断数据是否隔离; 若数据需要隔
离, 向sql添加数据过滤条件, 之后放行; 若数据
不需要隔离, 则直接放行。 与现有技术相比, 本发
明可以通过注解为无数据隔离及多租户的系统
中添加数据隔离及多租户功能, 避免大量改动持
久化层代码、 不侵入业务代码, 方便对现有业务
系统增量添加数据隔离功能。
权利要求书1页 说明书4页 附图2页
CN 115203722 A
2022.10.18
CN 115203722 A
1.一种数据隔离及多租户实现方法, 其特征在于, 首先判断是否有数据隔离标志,如果
没有放行,如果有,获取map per对应实体 类;
再判断租户隔离是否启用, 若是, 则向sql添加租户, 再判断数据是否隔离; 否的话, 直
接判断数据是否隔离;
若数据需要隔离, 向sql添加数据过滤条件, 之后放行; 若数据不需要隔离, 则直接放
行。
2.根据权利要求1所述的一种数据隔离及多租户实现方法, 其特征在于, mapper层添
加@EnableDataPerm注解, 实体类中使用@UserFilterColumn注解用户id属性, @
DeptFilterColumn注解部门id属性, @TenantFi lterColumn注解租户id属性;
在调用对应方法时, 程序会自动将数据隔离和租户隔离的对应规则, 拼接到相应的SQL
语句上。
3.根据权利要求2所述的一种数据隔离及多租户实现方法, 其特征在于, 所述@
EnableDataPerm注解含有 多个属性, 并且注解到类名上。
4.根据权利要求3所述的一种数据隔离及多租户实现方法, 其特 征在于,
所述@EnableDataPerm的多个属性包括:
mustIncludeUserRule 是否必须包 含自己;
excluseMethodName= 排除的方法名;
entity=对应的主实体 类;
tableNameOr Alias=主表别名。
5.一种数据隔离及多租户实现系统, 其特征在于, 首先判断是否有数据隔离标志,如果
没有放行,如果有,获取map per对应实体 类;
再判断租户隔离是否启用, 若是, 则向sql添加租户, 再判断数据是否隔离; 否的话, 直
接判断数据是否隔离;
若数据需要隔离, 向sql添加数据过滤条件, 之后放行; 若数据不需要隔离, 则直接放
行。
6.根据权利要求5所述的一种数据隔离及多租户实现系统, 其特征在于, mapper层添
加@EnableDataPerm注解, 实体类中使用@UserFilterColumn注解用户id属性, @
DeptFilterColumn注解部门id属性, @TenantFi lterColumn注解租户id属性;
在调用对应方法时, 程序会自动将数据隔离和租户隔离的对应规则, 拼接到相应的SQL
语句上。
7.根据权利要求6所述的一种数据隔离及多租户实现系统, 其特征在于, 所述@
EnableDataPerm注解含有 多个属性, 并且注解到类名上。
8.根据权利要求7所述的一种数据隔离及多租户实现系统, 其特征在于, 所述@
EnableDataPerm的多个属性包括:
mustIncludeUserRule 是否必须包 含自己;
excluseMethodName= 排除的方法名;
entity=对应的主实体 类;
tableNameOr Alias=主表别名。权 利 要 求 书 1/1 页
2
CN 115203722 A
2一种数据隔 离及多租户实现方 法及系统
技术领域
[0001]本发明涉及web后端开发领域, 具体提供一种数据隔离及多租户实现方法及系统。
背景技术
[0002]随着信息应用技术的不断发展, 信息安全问题逐渐成为信息系统中不可或缺的一
部分, 数据隔离作为一种信息手段可以广泛应用于各类web系统中, 数据隔离 常通过应用在
web系统的mapper层, 往往需要在系统设计的初试阶段就考虑到, 而对于已开发完成的web
系统, 添加数据隔离往 往需要进行重构, 那必然 要耗费大量的人工成本 。
发明内容
[0003]本发明是针对上述现有技术的不足, 提供一种实用性强的数据隔离及多租户实现
方法。
[0004]本发明进一步的技术任务是提供一种设计合理, 安全适用的一种数据隔离及多租
户实现系统。
[0005]本发明解决其 技术问题所采用的技 术方案是:
[0006]一种数据隔离及多租户实现方法, 首先判断是否有数据隔离标志,如果没有放行,
如果有,获取map per对应实体 类;
[0007]再判断租户隔离是否启用, 若是, 则向sql添加租户, 再判断数据是否隔离; 否的
话, 直接判断数据是否隔离;
[0008]若数据需要隔离, 向sql添加数据过滤条件, 之后放行; 若数据不需要隔离, 则直接
放行。
[0009]进一步的 , mapper层添加@EnableDataPerm注解 , 实体类中使用@
UserFilterColumn注解用户id属性, @DeptFilterColumn注解部门id属性, @
TenantFi lterColumn注解租户id属性;
[0010]在调用对应方法时, 程序会自动将数据隔离和租户隔离 的对应规则, 拼接到相应
的SQL语句上。
[0011]作为优选, 所述@EnableDataPerm注解含有 多个属性, 并且注解到类名上。
[0012]进一步的,
[0013]所述@EnableDataPerm的多个属性包括:
[0014]mustIncludeUserRule 是否必须包 含自己;
[0015]excluseMethodName= 排除的方法名;
[0016]entity=对应的主实体 类;
[0017]tableNameOr Alias=主表别名。
[0018]一种数据隔离及多租户实现系统, 首先判断是否有数据隔离标志,如果没有放行,
如果有,获取map per对应实体 类;
[0019]再判断租户隔离是否启用, 若是, 则向sql添加租户, 再判断数据是否隔离; 否的说 明 书 1/4 页
3
CN 115203722 A
3
专利 一种数据隔离及多租户实现方法及系统
文档预览
中文文档
8 页
50 下载
1000 浏览
0 评论
0 收藏
3.0分
温馨提示:本文档共8页,可预览 3 页,如浏览全部内容或当前文档出现乱码,可开通会员下载原始文档
本文档由 SC 于 2024-02-24 01:02:07上传分享