[发明专利]一种基于Mycat的数据库多租户实现方法在审
申请号: | 201810870967.3 | 申请日: | 2018-08-02 |
公开(公告)号: | CN109241028A | 公开(公告)日: | 2019-01-18 |
发明(设计)人: | 汤海波;寇兵;傅慧;邵辉 | 申请(专利权)人: | 山东浪潮通软信息科技有限公司 |
主分类号: | G06F16/21 | 分类号: | G06F16/21;G06F16/25;G06F16/242;G06F8/20 |
代理公司: | 济南信达专利事务所有限公司 37100 | 代理人: | 姜明 |
地址: | 250100 山东省*** | 国省代码: | 山东;37 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 租户 拦截器 数据库 业务库 封装 控制层 企业信息化 软件供应商 环境配置 密码获取 数据隔离 业务承载 业务访问 应用程序 用户登录 自动路由 运维 注解 登录 解析 改写 传递 代理 返回 访问 保证 成功 | ||
1.一种基于Mycat的数据库多租户实现方法,其特征在于:封装登录接口,根据用户名与密码获取所属的业务库tenant,返回的tenant作为访问其他业务的第一参数;封装控制层拦截器,用户登录成功后获取到了业务库tenant,所有业务访问前将tenant传递给控制层拦截器;封装业务承载接口,利用sql拦截器与Mycat提供的注解改写sql语句,Mycat代理在解析时会自动路由到tenant业务库上执行sql语句。
2.根据权利要求1所述的基于Mycat的数据库多租户实现方法,其特征在于,包括以下步骤:
用户在注册产品时,根据注册用户名生成唯一的租户ID,同时分配用户所属业务库并生成所属业务库标识tenant;
用户登录时,通过用户名获取租户ID,再通过租户ID获取该用户所属的业务库标识tenant;
用户登录成功后,将所属业务库标识tenant与会话信息一起存储;
利用Mycat注解改写sql语句,使sql语句在解析时自动路由到业务库上。
3.根据权利要求2所述的基于Mycat的数据库多租户实现方法,其特征在于,所述步骤(1)具体包括以下步骤:
用户在注册产品时,根据录入的用户名自动创建与用户名绑定的唯一租户ID并存储数据库;
根据用户名生成租户ID后,自动分配与租户ID绑定的所属业务库并生成所属业务库标识tenant存储到数据库,所属业务库标识tenant用于每次用户登录后获取使用。
4.根据权利要求2所述的基于Mycat的数据库多租户实现方法,其特征在于:所述步骤(2)中,用户登录软件时,通过用户名获取租户ID,再通过租户ID查询基础库配置映射关系获取登录用户所属业务库标识tenant。
5.根据权利要求2所述的基于Mycat的数据库多租户实现方法,其特征在于:所述步骤(3)中,用户登录成功并获取到所属业务库后,将所属业务库标识tenant存储于session或cookie,便于访问其他业务时获取所属业务库标识tenant。
6.根据权利要求2所述的基于Mycat的数据库多租户实现方法,其特征在于,所述步骤(4)具体包括以下步骤:
封装Sql拦截器并利用Mycat提供的注解,改写Sql语句sql = /*!mycat:schema= +tenant + */ + sql;
Mycat在解析时,会自动路由到tenant业务库上执行Sql语句完成业务处理。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于山东浪潮通软信息科技有限公司,未经山东浪潮通软信息科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201810870967.3/1.html,转载请声明来源钻瓜专利网。