System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本公开涉及多租户平台领域,尤其涉及一种数据源选择方法、数据源选择装置及存储介质。
技术介绍
1、软件即服务(saas)是一种软件应用模式,通过互联网提供软件服务,租户按需租用。通常一个软件可以同时服务多个租户,降低了单个租户的服务交付、运维成本,实现最大化收益。但在多租户模式下由于软件服务时共享的,生成和使用的数据也是多租户共享,从而多租户之间的数据会相互干扰,进而导致业务错误的问题。因此需要对多租户数据进行安全隔离。
2、相关技术中,多租户架构在数据存储上有以下几种形式:独立数据库,一个租户独享一个数据库实例;共享数据库、隔离数据表,每个用户关联到到同一数据库的不同schema,租户间数据彼此逻辑不可见;共享数据库、共享数据表,所有租户共享一个数据库和一种数据模式。但是没有涉及在用一个saas平台下,支持租户存在不同数据源隔离方法以及不同数据源下数据表结构可以不同的情况,不能实现租户的个性化需求。
技术实现思路
1、为克服相关技术中存在的问题,本公开提供一种数据源选择方法、数据源选择装置及存储介质,用于解决多租户数据源隔离问题。
2、根据本公开实施例的第一方面,提供一种数据源选择方法,应用于多租户平台,包括获取租户发送的数据源获取请求,所述数据源获取请求中包括租户标识;在预配置的租户数据源表,确定匹配所述租户标识的数据源配置信息;其中,所述租户数据源表中记录有租户标识信息以及数据源配置信息,所述数据源配置信息至少包括数据源连接,所述数据源连接用于标识公共数
3、在一种实施方式中,基于所述数据源信息,为所述租户分配数据源,包括:若所述数据源连接用于标识私有化数据源,则确定所述私有化数据源是否已加载至所述多租户平台;若所述私有化数据源已加载至所述多租户平台,则为所述租户分配所述已加载的私有化数据源;若所述私有化数据源未被加载至所述多租户平台,则加载所述私有化数据源,并为所述租户分配加载的所述私有化数据源。
4、在一种实施方式中,基于所述数据源信息,为所述租户分配数据源,包括:若所述数据源连接用于标识公共数据源,则为所述租户分配公共数据源。
5、在一种实施方式中,所述方法还包括:若在预配置的租户数据源表中不存在所述数据源信息,则为所述租户分配公共数据源。
6、在一种实施方式中,所述数据源信息中还包括以下至少一项:数据源账户信息;数据隔离策略;连接池数量;数据表个性化配置信息;个性化脱敏信息;以及个性化签名信息。
7、在一种实施方式中,所述公共数据源和所述私有化数据源采用如下方式预先加载:在所述多租户平台启动服务时,启动加载公共数据源;响应于完成公共数据源的加载,动态加载私有化数据源。
8、根据本公开实施例的第二方面,提供一种数据源选择装置,应用于多租户平台,包括:获取单元,用于获取租户发送的数据源获取请求,所述数据源获取请求中包括租户标识;确定单元,用于在预配置的租户数据源表,确定匹配所述租户标识的数据源配置信息;其中,所述租户数据源表中记录有租户标识信息以及数据源配置信息,所述数据源配置信息至少包括数据源连接,所述数据源连接用于标识公共数据源或私有化数据源;分配单元,用于基于所述数据源信息,为所述租户分配数据源。
9、在一种实施方式中,所述分配单元采用如下方式基于所述数据源信息,为所述租户分配数据源:若所述数据源连接用于标识私有化数据源,则确定所述私有化数据源是否已加载至所述多租户平台;若所述私有化数据源已加载至所述多租户平台,则为所述租户分配所述已加载的私有化数据源;若所述私有化数据源未被加载至所述多租户平台,则加载所述私有化数据源,并为所述租户分配加载的所述私有化数据源。
10、在一种实施方式中,所述分配单元采用如下方式基于所述数据源信息,为所述租户分配数据源:若所述数据源连接用于标识公共数据源,则为所述租户分配公共数据源。
11、在一种实施方式中,所述分配单元还采用如下方式为所述租户分配数据源:若在预配置的租户数据源表中不存在所述数据源信息,则为所述租户分配公共数据源。
12、在一种实施方式中,所述数据源信息中还包括以下至少一项:数据源账户信息;数据隔离策略;连接池数量;数据表个性化配置信息;个性化脱敏信息;以及个性化签名信息。
13、在一种实施方式中,所述确定单元采用如下方式预先加载所述公共数据源和所述私有化数据源:在所述多租户平台启动服务时,启动加载公共数据源;响应于完成公共数据源的加载,动态加载私有化数据源。
14、根据本公开实施例的第三方面,提供一种数据源选择装置,包括:处理器;用于存储处理器可执行指令的存储器;其中,处理器被配置为:执行第一方面任意一种实施方式中所述的数据源选择的方法。
15、根据本公开实施例的第四方面,提供一种非临时性计算机可读存储介质,所述存储介质中存储有指令,当所述存储介质中的指令由终端的处理器执行时,使得终端能够执行第一方面任意一种实施方式中所述的数据源选择的方法。
16、本公开的实施例提供的技术方案可以包括以下有益效果:获取租户发送的数据源获取请求,数据源获取请求中包括租户标识,用于进行数据区分;基于预配置的租户数据源表,确定匹配租户的数据源配置信息,数据源配置信息包括数据源连接,可标识租户选择的是公共数据源或是私有化;基于数据源信息,为租户分配数据源。解决了多租户数据源隔离问题,又支持不同数据源下数据表数量和表结构的不同,实现租户的个性化需求。
17、应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
本文档来自技高网...【技术保护点】
1.一种数据源选择方法,其特征在于,应用于多租户平台,包括:
2.根据权利要求1所述的方法,其特征在于,所述基于所述数据源信息,为所述租户分配数据源,包括:
3.根据权利要求1所述的方法,其特征在于,所述基于所述数据源信息,为所述租户分配数据源,包括:
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:
5.根据权利要求1所述的方法,其特征在于,所述数据源信息中还包括以下至少一项:
6.根据权利要求5所述的方法,其特征在于,所述公共数据源和所述私有化数据源采用如下方式预先加载:
7.一种数据源选择装置,其特征在于,应用于多租户平台,包括:
8.根据权利要求7所述的装置,其特征在于,所述分配单元采用如下方式基于所述数据源信息,为所述租户分配数据源:
9.根据权利要求7所述的装置,其特征在于,所述分配单元采用如下方式基于所述数据源信息,为所述租户分配数据源:
10.根据权利要求7所述的装置,其特征在于,所述分配单元还采用如下方式为所述租户分配数据源:
11.
12.根据权利要求11所述的装置,其特征在于,所述确定单元采用如下方式预先加载所述公共数据源和所述私有化数据源:
13.一种数据源选择装置,其特征在于,包括:
14.一种非临时性计算机可读存储介质,当所述存储介质中的指令由移动终端的处理器执行时,使得移动终端能够执行权利要求1至6中任意一项所述的数据源选择方法。
...【技术特征摘要】
1.一种数据源选择方法,其特征在于,应用于多租户平台,包括:
2.根据权利要求1所述的方法,其特征在于,所述基于所述数据源信息,为所述租户分配数据源,包括:
3.根据权利要求1所述的方法,其特征在于,所述基于所述数据源信息,为所述租户分配数据源,包括:
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:
5.根据权利要求1所述的方法,其特征在于,所述数据源信息中还包括以下至少一项:
6.根据权利要求5所述的方法,其特征在于,所述公共数据源和所述私有化数据源采用如下方式预先加载:
7.一种数据源选择装置,其特征在于,应用于多租户平台,包括:
8.根据权利要求7所述的装置,其特征在于,所述分配单元采用如下方式基于所...
【专利技术属性】
技术研发人员:丁家栋,何晓波,
申请(专利权)人:天星数科科技有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。