全网唯一标准王
(19)国家知识产权局 (12)发明 专利申请 (10)申请公布号 (43)申请公布日 (21)申请 号 202211128048.1 (22)申请日 2022.09.16 (71)申请人 兴业银行股份有限公司 地址 350014 福建省福州市台江区江滨中 大道398号兴业银行 大厦 申请人 兴业数字金融服 务(上海)股份有限 公司 (72)发明人 何健文  (74)专利代理 机构 上海段和段律师事务所 31334 专利代理师 郭国中 (51)Int.Cl. G06F 21/62(2013.01) G06F 21/60(2013.01) G06F 21/55(2013.01)G06F 16/25(2019.01) G06F 16/27(2019.01) G06F 16/2455(2019.01) G06F 9/54(2006.01) H04L 67/02(2022.01) (54)发明名称 基于租户的数据隔离方法及系统 (57)摘要 本发明提供一种基于租户的数据隔离方法 及系统, 涉及数据安全技术领域, 包括: 步骤S1: 通过前端和后端约定租户配置, 所述租户配置中 不同的租户标识对应不同的数据库信息; 步骤 S2: 所述前端请求带上租户标识并放在HTTP协议 的HEADER中, 所述后端请求通过HEADER获取所述 租户标识, 保存在线程局部变量中; 步骤S3: 所述 后 端 继 承 S p r i n g  J d b c 包 提 供 的 AbstractRoutingDataSource类, 重新定义SQL执 行时获取数据源的方式, 根据租户值获取数据 源, 并同时处理多库数据隔离和单库+租户字段 数据隔离; 步骤S4: 通过Mybatis提供的 Interceptor机制, 拦截StatementHandler的 prepare方法。 本发明能够适应不同租户的差异 和个性化需求。 权利要求书2页 说明书4页 附图1页 CN 115481435 A 2022.12.16 CN 115481435 A 1.一种基于租户的数据隔离方法, 其特 征在于, 包括: 步骤S1: 通过前端和后端约定租户配置, 所述租户配置中不同的租户标识对应不同的 数据库信息; 步骤S2: 所述前端请求带上租户标识并放在HTTP协议的HEADER中, 所述后端请求通过 HEADER获取所述租户标识, 保存在线程局部变量中; 步骤S3: 所述后端继承Spring  Jdbc包提供的AbstractRoutingDataSource类, 重新定 义SQL执行时获取数据源的方式, 根据租户配置对应的租户值 获取数据源, 并同时处理多库 数据隔离和单库+租户字段 数据隔离; 步骤S4: 通过Mybatis提供的Interceptor机制, 拦截StatementHandler的prepare方 法。 2.根据权利要求1所述的基于租户的数据隔离方法, 其特征在于, 所述步骤S2中请求处 理的过程对应单个线程的多个方法, 能够复用租户标识, 且请求处 理完之后需进行清理。 3.根据权利要求1所述的基于租户的数据隔离方法, 其特征在于, 针对所述单库+租户 字段数据隔离, 通过 特殊占位符填充租户字段替换真实的租户值。 4.根据权利要求1所述的基于租户的数据隔离方法, 其特征在于, 所述步骤S3具体包 括: 步骤S3.1: 执行SQL时, 获取线程局部变量中的租户标识, 根据租户配置信息, 在缓存中 获取所述租户标识对应的数据源, 若数据源存在, 直接返回数据源; 若数据源不存在, 执行 步骤S3.2; 步骤S3.2: 通过租户配置中的数据源基础信息, 初始化一个新的数据源, 保存在缓存 中, 同时系统针对恶意的请求处理进 行拦截, 认 为是非法请求, 需进 行日志记录并返回相应 的报错提示。 5.根据权利要求1所述的基于租户的数据隔离方法, 其特征在于, 所述步骤S4具体包 括: 步骤S4.1: 通过StatementHandler的拦截器, 拦截SQL的调用, 识别特定租户标识, 使用 线程局部变量的租户值进行替换; 步骤S4.2: 通过StatementHandler的拦截器, 拦截SQL的调用, 针对所述单库+租户字段 数据隔离, 识别SQL中是否有用到 租户字段, 对没有用到 租户字段的SQL进 行记录, 提示识别 风险。 6.一种基于租户的数据隔离系统, 其特 征在于, 包括: 模块M1: 通过前端和后端约定租户配置, 所述租户配置中不同的租户标识对应不同的 数据库信息; 模块M2: 所述前端请求带上租户标识并放在HTTP协议的HEADER中, 所述后端请求通过 HEADER获取所述租户标识, 保存在线程局部变量中; 模块M3: 所述后端继承Spring  Jdbc包提供的AbstractRoutingDataSource类, 重新定 义SQL执行时获取数据源的方式, 根据租户配置对应的租户值 获取数据源, 并同时处理多库 数据隔离和单库+租户字段 数据隔离; 模块M4: 通过Mybatis提供的Interceptor机制, 拦截StatementHandler的prepare方 法。权 利 要 求 书 1/2 页 2 CN 115481435 A 27.根据权利要求6所述的基于租户的数据隔离系统, 其特征在于, 所述模块M2中请求处 理的过程对应单个线程的多个方法, 能够复用租户标识, 且请求处 理完之后需进行清理。 8.根据权利要求6所述的基于租户的数据隔离系统, 其特征在于, 针对所述单库+租户 字段数据隔离, 通过 特殊占位符填充租户字段替换真实的租户值。 9.根据权利要求6所述的基于租户的数据隔离系统, 其特征在于, 所述模块M3具体包 括: 模块M3.1: 执行SQL时, 获取线程局部变量中的租户标识, 根据租户配置信息, 在缓存中 获取所述租户标识对应的数据源, 若数据源存在, 直接返回数据源; 若数据源不存在, 执行 模块M3.2; 模块M3.2: 通过租户配置中的数据源基础信息, 初始化一个新的数据源, 保存在缓存 中, 同时系统针对恶意的请求处理进 行拦截, 认 为是非法请求, 需进 行日志记录并返回相应 的报错提示。 10.根据权利要求6所述的基于租户的数据隔离系统, 其特征在于, 所述模块M4具体包 括: 模块M4.1: 通过StatementHandler的拦截器, 拦截SQL的调用, 识别特定租户标识, 使用 线程局部变量的租户值进行替换; 模块M4.2: 通过StatementHandler的拦截器, 拦截SQL的调用, 针对所述单库+租户字段 数据隔离, 识别SQL中是否有用到 租户字段, 对没有用到 租户字段的SQL进 行记录, 提示识别 风险。权 利 要 求 书 2/2 页 3 CN 115481435 A 3

PDF文档 专利 基于租户的数据隔离方法及系统

文档预览
中文文档 8 页 50 下载 1000 浏览 0 评论 0 收藏 3.0分
温馨提示:本文档共8页,可预览 3 页,如浏览全部内容或当前文档出现乱码,可开通会员下载原始文档
专利 基于租户的数据隔离方法及系统 第 1 页 专利 基于租户的数据隔离方法及系统 第 2 页 专利 基于租户的数据隔离方法及系统 第 3 页
下载文档到电脑,方便使用
本文档由 SC 于 2024-02-18 22:34:18上传分享
友情链接
站内资源均来自网友分享或网络收集整理,若无意中侵犯到您的权利,敬请联系我们微信(点击查看客服),我们将及时删除相关资源。