CN117971798A - SaaS软件多技术融合的数据隔离方法、系统及设备 - Google Patents
SaaS软件多技术融合的数据隔离方法、系统及设备 Download PDFInfo
- Publication number
- CN117971798A CN117971798A CN202311693928.8A CN202311693928A CN117971798A CN 117971798 A CN117971798 A CN 117971798A CN 202311693928 A CN202311693928 A CN 202311693928A CN 117971798 A CN117971798 A CN 117971798A
- Authority
- CN
- China
- Prior art keywords
- tenant
- database
- data
- information
- twid
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000002955 isolation Methods 0.000 title claims abstract description 171
- 238000005516 engineering process Methods 0.000 title claims abstract description 86
- 230000004927 fusion Effects 0.000 title claims description 53
- 238000000034 method Methods 0.000 claims abstract description 50
- 230000007246 mechanism Effects 0.000 claims abstract description 12
- 238000012545 processing Methods 0.000 claims abstract description 8
- 230000006870 function Effects 0.000 claims description 16
- 238000012795 verification Methods 0.000 claims description 9
- 238000013500 data storage Methods 0.000 claims description 6
- 238000004590 computer program Methods 0.000 claims description 4
- 230000008520 organization Effects 0.000 claims description 3
- 230000010354 integration Effects 0.000 abstract 1
- 230000000694 effects Effects 0.000 description 12
- 230000008569 process Effects 0.000 description 8
- 230000008901 benefit Effects 0.000 description 5
- 238000012550 audit Methods 0.000 description 4
- 238000010586 diagram Methods 0.000 description 4
- 238000003491 array Methods 0.000 description 2
- 238000005266 casting Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 239000000203 mixture Substances 0.000 description 2
- 238000005192 partition Methods 0.000 description 2
- 230000008092 positive effect Effects 0.000 description 2
- 238000000638 solvent extraction Methods 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 238000013475 authorization Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000000052 comparative effect Effects 0.000 description 1
- 238000013523 data management Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 238000012827 research and development Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
Landscapes
- Storage Device Security (AREA)
Abstract
本发明属于软件服务技术领域,公开了一种SaaS软件多技术融合的数据隔离方法、系统及设备,多数据库、多Schema、租户ID等四位一体的数据隔离架构,能有效均衡隔离强度与存储系统资源占用之间矛盾;为每个租户引入一个TWID(租户工作ID)、对TWID加密、租户数据存储的数据库信息、租户存储的Schema加密,实现三重加密机制,大幅提高租户信息数据保护的强度;访问速度快;租户数据的备份、清除方便,保证了数据的完整性,不存在垃圾数据;各个租户之间数据分开,数据处理效率高,从而能够更加快速的满足租户的业务需求。隔离强度高;本发明通过三重加密,有效提高了各个租户数据的隔离性和安全性。
Description
技术领域
本发明属于软件服务技术领域,尤其涉及一种SaaS软件多技术融合的数据隔离方法、系统及设备。
背景技术
目前,SaaS软件是一种通过互联网提供的服务模式,能够为成百上千的不同租户(又称客户),提供软件服务,而不需要给租户分别部署一套软件,租户可以通过浏览器或其他终端设备访问和使用软件,而无需在本地安装和维护软件。随着租户规模的扩大,应用的深入,也会带来一系列的问题,因此,保证各个租户的数据安全性是SaaS软件的关键技术,这种技术也称为多租户数据隔离技术。
实现数据隔离的技术有很多,包括多数据库模式、数据加密法、Schema(模式)、租户ID隔离等方法,通常存在隔离强度和效率之间的矛盾。如何达到减小系统资源的占用量、提高数据处理效率的前提下,还能提高数据隔离的强度是数据隔离方法的关键技术。
针对多租户数据隔离安全问题,产业界、学术界展开了许多研究。截止目前,已有多种隔离技术。为此,根据多租户数据在隔离角度下的安全问题,通过检索专利,对现有技术总结如下:
1、基于数据库或数据库实例隔离的多租户架构是一种常见的数据隔离方法(简称DB法),它是一种通过在数据库层面对不同租户的数据进行隔离和访问控制的方法。可以将不同租户的数据存储在独立的数据库中,每个租户都有自己的数据库实例,这样可以确保数据之间的分隔和安全性。
2、基于租户ID和租户访问控制的数据隔离法是一种常见的数据隔离策略(简称TID法),通过访问控制技术可以限制对数据的访问权限。这包括身份验证、授权和权限管理。只有经过身份验证并被授权的租户才能够通过自己的ID访问相应的数据,确保数据不被未授权的人员获取,进而实现数据隔离。
3、基于Schema或命名空间来分区的数据隔离法(简称Schema法),通过逻辑的方式将不同的数据进行隔离和分区,一个数据库中使用不同的Schema或命名空间来分区数据,以保护数据的安全。在SaaS(软件即服务)中,使用Schema或命名空间分区隔离方法,
4、数据加密法的数据安全性高,通过对数据进行加密处理,可以有效保护用户的数据信息,降低数据泄露风险,即使在数据存储或传输过程中发生安全漏洞,由于数据已经加密,攻击者无法轻易获取有用的信息,有效降低了数据泄露的风险。防止未经授权的访问和数据泄露。
通过上述分析,现有技术存在的问题及缺陷如下表格所示:
(1)基于数据库或数据库实例隔离方法,即DB法。隔离强度最高,占用资源较多,并且在高隔离性或安全性情况下,不能够支持大规模租户使用,数据访问速度快。
(2)基于租户ID的隔离方法,即TID法。数据隔离强度比较低,租户信息的隔离强度弱(隐私保护权比较差),数据访问速度快。
(3)基于Schema或命名空间来分区的数据隔离法,即Schema法。隔离强度居中(隔离强度比TID法强,比DB法弱),资源占用居中,数据访问速度也居中。
(4)数据加密法的隔离强度高,资源占用高,不方便数据检索,数据访问速度慢。
发明内容
针对现有技术存在的问题,本发明提供了一种SaaS软件多技术融合的数据隔离方法、系统及设备。
本发明提供的一种SaaS软件多技术融合的数据隔离方法,所述SaaS软件多技术融合的数据隔离方法,具体如下:
所述SaaS软件多技术融合的数据隔离方法的多技术融合是指:将数据库隔离技术、Schema隔离技术、租户ID隔离技术、数据加密技术相结合,实现多数据库、多Schema以及租户ID等四位一体的数据隔离模型;
具体的,在每一个数据库当中,建立若干个Schema;
在每一个Schema中,创建多个租户,为每个租户引入一个TWID(租户工作ID);并且对租户的TWID进行加密、租户数据存储的数据库信息加密、租户存储的Schema加密,实现三重加密机制。
三重加密机制:首先,通过SaaS管理员创建云系统信息,并配置租户数据库基本信息,维护对应的数据库;使用AES算法对数据库信息、数据库账户信息、租户信息表的必要字段进行加密;其中,第一重加密是对数据库信息表中的数据库IP,数据库名称重要字段通过AES算法进行加密;第二重加密是数据库账户信息表的数据库账户名,数据库密码重要字段通过AES算法进行加密;第三重加密是对租户信息表中TWID字段进行AES算法加密,实现三重加密机制;
访问前解密:解密是指对租户的TWID进行解密和对数据库IP,数据库名称、数据库账户名以及数据库密码进行解密。当租户登录以后,系统会按照租户数据库关系自动进行解密,此时,解密主要是解密数据库IP,数据库名称、数据库账户名以及数据库密码信息,使用AES算法解密所有加密的数据,生成租户与数据源的关系,当租户进行业务操作的时候,根据当前租户的加密TWID使用AES算法进行解密,获取TWID的明文进行相应的操作。
进一步,所述SaaS软件多技术融合的数据隔离方法,具体包括:
云平台数据库管理员:维护数据库、配置租户数据库,使用AES算法对必要字段进行数据加密,存入云数据库中,云平台管理员审核租户的注册信息,同时生成租户的TWID明文,使用AES算法对租户的TWID加密,存储到云数据中,关联租户到对应的Schema,并存储到云数据中。
租户注册完成后,登录系统,租户登录系统后,系统会将租户信息存到session,再将session存储到Redis数据库中,进行缓存。
开始业务操作。
获取当前租户的加密TWID,使用AES算法进行解密,获取租户的TWID明文;通过租户的TWID明文获取数据源执行业务操作。
系统:项目启动后,会查找所有租户数据库配置关系数据,租户加密的数据库链接以及租户信息,按照租户数据库关系使用AES算法解密所有加密的数据,并生成数据源,建立租户和数据源关系,放入内存;使用AES算法对数据库信息、数据库账户信息表中加密的字段进行解密。
进一步,所述SaaS软件多技术融合的数据隔离方法有n个数据库,在每个数据库中创建m个Schema,在每个Schema中创建多个租户信息;为每个租户引入一个TWID,实现各个租户数据的隔离访问。
进一步,所述SaaS软件多技术融合的数据隔离方法的租户信息获取对比包括:
S11、登录系统;
S12、打开租户注册表;
S13、获取租户的TWID;
S14、分别打开Schema及其中表;
S15、查询主码为TWID的信息;
S16、获取租户信息;
若进行了加密,要获取租户信息,则需要进行解密,具体步骤包括如下:
S21、登录系统;
S22、打开租户注册表;
S23、自动解密数据库账户密码,解密数据库名称及IP;
S24、获取租户的TWID密文;
S25、解密TWID,得到租户的TWID明文;
S26、查询主码为TWID的信息;
S27、获取租户信息;
加密算法采用AES算法进行加密,把待加密字段分成一组一组的,每组长度相等,每次加密一组数据,直到将整个明文加密完成,之后在将一块一块密文块拼接起来,形成密文,把明文P和密钥K作为加密函数的参数输入,则加密函数E会输出密文C;加密与解密的密钥是相同的,若要进行解密,则设AES解密函数为D,则P=D(K+C),其中C为密文,K为密钥,P为明文;把密文C和密钥K作为解密函数的参数输入,则解密函数会输出明文P;为每个租户引入一个TWID、使用AES算法分别对租户的TWID加密、租户数据存储的数据库信息加密、租户存储的Schema加密;若需要查看某个租户的数据,需要进行解密。
进一步,所述SaaS软件多技术融合的数据隔离方法的数据库分派,包括以下步骤:
1)云平台SaaS管理员登录创建系统信息;
2)管理员配置数据库基本信息;
3)管理员配置数据库访问信息;
4)管理员配置Schema信息;
5)系统发送邮件通知到DBA线下创建数据库,邮件的内容是数据库IP,数据库名称,数据库账户名,数据库密码,数据库Schema名称;
所述SaaS软件多技术融合的数据隔离方法的租户信息注册及存储分配的具体步骤包括:
先注册成平台租户,生成LOGIN账号,租户填写手机号密码,通过短信验证注册成为云平台租户;
注册成功以后,系统生成LOGIN账号;
选择认证租户类型,租户提交租户审核信息,平台业务管理员审核通过后会绑定租户ID与账号的关系;
云平台管理员审核通过后会生成租户的TWID,并且加密租户的TWID,并且写入租户信息,更改审核状态;
绑定默认系统分配的TM权限;
随机分配数据库和Schema,把租户的TWID明文写入Schema关系表中,通过云平台随机算法匹配数据库,选择Schema;
所述SaaS软件多技术融合的数据隔离方法的租户数据访问与存储的具体执行如下:
租户进行登录;
系统验证通过后,获取系统角色对应权限,获取租户基本信息,拿到租户-账号,通过账号获取账号与租户的关系,得到租户ID;
根据租户ID,查询出经过加密后的租户的TWID;
通过解密算法解密TWID,来获取TWID明文,通过租户的TWID明文,进而获取Schema表中Schema名称和数据库ID;数据源连接池中已对名称、账户、密码、IP进行解密;通过已知的IP、数据库名称、Schema、账户名、密码访问租户的数据库展示租户数据。
本发明的另一目的在于提供一种计算机设备,所述计算机设备包括存储器和处理器,所述存储器存储有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行所述SaaS软件多技术融合的数据隔离方法。
本发明的另一目的在于提供一种计算机可读存储介质,存储有计算机程序,所述计算机程序被处理器执行时,使得所述处理器执行所述SaaS软件多技术融合的数据隔离方法。
本发明的另一目的在于提供一种信息数据处理终端,所述信息数据处理终端用于实现所述SaaS软件多技术融合的数据隔离方法。
本发明的另一目的在于提供一种基于所述SaaS软件多技术融合的数据隔离方法的SaaS软件多技术融合的数据隔离系统,所述SaaS软件多技术融合的数据隔离系统的信息实体:包含数据库数、系统ID、系统名称、描述信息属性。
数据库基本信息实体:包含数据库ID、数据库业务名、数据库IP、数据库名称、系统ID属性;
数据库访问信息实体:包含数据库ID、数据库账户、访问密码、Schema数属性;
Schema信息实体:包含Schema名称、数据库ID、TWID、Schema数属性;
租户信息实体:包含租户ID统一机构代码、TWID、联系人、联系电话、微信、邮箱、租户类型、租户名称属性;
租户系统信息实体:租户-账户、租户标识、租户密码、TWID。
结合上述的技术方案和解决的技术问题,本发明所要保护的技术方案所具备的优点及积极效果为:
第一、本发明通过将数据库模式的隔离策略、租户ID的隔离策略、Schema的数据隔离方法以及数据加密这四种技术方法进行融合,实现多数据库、多Schema以及租户ID四位一体的数据隔离模型。
1)在每一个数据库当中,建立若干个Schema;
2)其次,在每一个Schema中,创建多个租户,为每个租户引入一个TWID。
3)并且对租户的TWID进行加密、租户数据存储的数据库信息加密、租户存储的Schema加密,提高租户数据的隔离效果,实现各个租户数据的隔离访问,能够支持大规模租户场景的SaaS应用,效果优于任何一种单一方法。较为有效的提升了数据的安全性和隔离性。
第二,本发明通过多技术进行融合,实现较高的数据隔离强度,同时系统资源占用较少、处理速度较快。本发明融合多种技术,如图2所示:
1)采用基于租户ID的隔离方法访问速度快的优点;
2)采用基于Schema和数据库隔离效果好的优点;
3)采用多数据库和多Schema技术,加强隔离效果;
4)创新性地引入TWID的概念,访问数据不使用租户ID,二次增强隔离强度;
5)创新性地引入数据加密技术,对TWID、存储的Schema和数据库信息进行加密,进一步增强了隔离强度;
6)每个租户只有TWID、存储的数据库和Schema信息进行加密,在实现技术上采用内存缓存技术,解密时间代价极小。本发明能以小的系统资源占用和较短的处理时间,达到较高数据隔离强度的目的。
综上所述,基于数据库的数据隔离方法,每个租户独占一个数据库,数据隔离效果最好,但是占用的资源最大,不能支持大规模租户应用场景;基于Schema的数据隔离方法,数据隔离的强度弱于基于数据库的数据隔离方法,但是,在相同的服务器资源情况下,能够支持更多的租户应用。当Schema数量增大时,也会消耗更多的资源,也不能支持大规模租户应用的SaaS系统;基于租户ID的数据隔离方法,能够支持大规模租户场景的SaaS应用,但是,由于不同的租户数据,在同一张数据表中,隔离强度最弱。
本发明将数据库隔离技术、Schema隔离技术、租户ID隔离技术以及数据加密技术进行融合,能有效均衡隔离强度与存储系统资源占用之间矛盾,并且为每个租户引入一个TWID、对TWID加密、租户数据存储的数据库信息、租户存储的Schema加密,实现三重加密机制,较为有效的提升了数据信息的隔离性,大幅提高租户信息数据保护的强度。
第三,作为本发明的权利要求的创造性辅助证据,还体现在以下几个重要方面:
(1)本发明的技术方案转化后的预期收益和商业价值为:
本的技术方案转化后,能够提高系统的数据隔离效果。能够让一些对自己数据安全性有顾虑的租户,放弃顾虑,从而成为云平台的租户,从而提高商业价值。
(2)本发明的技术方案填补了国内外业内技术空白:
通过专利检索,目前能检索到的专利大都是通过单一隔离策略来保证数据安全性,存在一定的局限性。没有发现将数据库模式的隔离策略、租户ID的隔离策略、Schema的数据隔离策略以及数据加密这四种技术融合一起解决数据的安全性和隔离性。本发明通过技术融合解决了:
1)数据库模式或数据库实例模式下系统资源占用太多,并且在高隔离性或安全性情况下,不能够支持大规模租户使用的问题。
2)租户ID的隔离策略下,数据隔离强度比较低,租户信息数据不安全的问题。
3)现有技术加强数据的安全性和隔离效果较差,系统访问效率较差,不能使得租户数据的隔离性和安全性得到大幅提升的问题。
4)现有技术下DBA可以直接查看租户数据问题。通过数据加密,使得DBA无法直接获取租户的数据信息。
进而填补了国内外业内技术空白。
(3)本发明的技术方案是否解决了人们一直渴望解决、但始终未能获得成功的技术难题:
本发明解决了SaaS云系统高隔离效果和小资源占用和快速处理的问题,这个一直是SaaS云系统较难克服的问题。
(4)本发明的技术方案是否克服了技术偏见:
本发明的技术方案克服了这样的技术偏见:1)高隔离效果的SaaS系统资源占用一定较大、并且运行速度较慢;2)租户的偏见,SaaS系统容易泄露数据。
第四,本发明提供的SaaS数据隔离方法的技术进步主要表现在以下几个方面:
1.多技术融合:通过将数据库模式的隔离策略、租户ID的隔离策略、Schema的数据隔离方法以及数据加密这四种技术方法进行融合,实现了一种复杂但强大的数据隔离模型。这种模型可以处理多数据库、多Schema以及租户ID的隔离需求。
2.数据安全性:通过对TWID、租户数据存储的数据库信息和租户存储的Schema进行加密,大大增强了数据的安全性。同时,采用AES算法进行三重加密,确保了数据信息的安全。
3.灵活性和可扩展性:在每一个数据库中可以建立多个Schema,在每一个Schema中又可以创建多个租户,这种设计提供了良好的灵活性和可扩展性,可以方便地适应不同的业务需求。
4.对于数据库相关信息的解密过程,系统可以自动完成,不需要租户进行手动操作。这大大简化了租户的使用流程,同时也降低了数据泄露的风险。
通过本发明提供的SaaS数据隔离方法,可以有效地保护数据的隔离性和安全性,同时也可以提供一个方便、灵活的数据管理环境。
本发明与现有技术进行对比,如下表所示,前面的三种方法的租户数据对数据库管理员呈明文格式,能直接读取租户所有数据。本发明是将多种隔离技术相结合,隔离强度高,数据访问速度快,在此基础上还设计了三重加密机制,能够高效解密且安全的访问租户信息。本发明的租户数据对数据库管理员呈密文格式,确保数据的安全性。
表1本发明与DB法、TID法、Schema法、数据加密法进行对比
附图说明
图1是本发明实施例提供的SaaS软件多技术融合的数据隔离方法流程图;
图2是本发明实施例提供的SaaS软件多技术融合的数据隔离方法架构图;
图3是本发明实施例提供的SaaS软件多技术融合的数据隔离方法原理图;
图4是本发明实施例提供的租户信息获取对比流程图;
图5是本发明实施例提供的数据库分派流程图;
图6是本发明实施例提供的租户信息注册及存储分配流程图;
图7是本发明实施例提供的租户数据访问与存储流程图;
图8是本发明实施例提供的SaaS软件多技术融合的数据隔离系统框图。
图9是本发明实施例提供的SaaS软件数字招商-云平台。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
针对云服务提供商和大型集团企业的场景,本发明的技术方案提供了一种有效的数据隔离方法,以确保在多租户环境中的数据安全性和隔离性。以下是针对这两个场景的调整后的技术方案:
实施例1:云服务提供商
1)数据库实例创建:对每个租户(企业)创建一个单独的数据库实例,确保不同租户间数据的物理隔离。
2)租户识别:为每个企业租户分配一个唯一的租户工作ID(TWID),并在系统中进行存储,以便在操作中准确识别不同的租户。
3)数据加密:使用AES算法加密包括TWID在内的所有租户数据,包括对租户数据存储的数据库信息和Schema信息的加密,以确保数据的安全性和保密性。
4)动态解密与访问控制:当企业租户登陆系统时,系统自动解密相关信息,建立租户与其数据源之间的关系,确保只有授权的租户可以访问其数据。
实施例2:大型集团企业
1)企业级数据库架构:为集团旗下的每个子企业(每个企业作为一个租户)创建独立的数据库实例,并在每个数据库实例中建立多个Schema,以实现数据的逻辑隔离。
2)企业身份分配与管理:系统为每个子企业分配一个独一无二的TWID,作为其在系统中的身份识别。
3)全面数据加密:应用AES加密算法对每个企业的TWID、企业数据存储的数据库信息及Schema信息进行加密,增强数据安全性。
4)自动化身份认证与数据访问:当企业用户登陆系统时,系统自动进行数据解密,根据企业的TWID实现精确的数据访问控制,保证只有授权的用户能够访问其企业的数据。
通过以上方案,可以实现对云服务提供商和大型集团企业环境中的数据进行有效的隔离和保护,从而确保数据安全性和隔离性。
实施例3:
本发明实施例提供的多技术融合是指:将数据库隔离技术、Schema隔离技术、租户ID隔离技术以及数据加密技术相结合。数据库隔离技术是使用数据库分别存储每个租户信息,数据隔离效果最好,但是占用的资源最大,不能支持大规模租户应用场景,因此在每个数据库中创建多个Schema,并且在每个Schema中创建多个租户信息,通过租户ID进行隔离。该技术可以解决可扩展的四种隔离方案(ID隔离、Schema隔离、数据库实例的隔离、数据加密),而且能够支持在相同的服务器资源情况下,能够支持更多的租户应用。
三重加密机制:首先,通过SaaS管理员创建云系统信息,并配置租户数据库基本信息,维护对应的数据库。使用AES算法对数据库信息、数据库账户信息、租户信息表的必要字段进行加密。其中,第一重加密是对数据库信息表中的数据库IP,数据库名称重要字段通过AES算法进行加密;第二重加密是数据库账户信息表的数据库账户名,数据库密码重要字段通过AES算法进行加密;第三重加密是对租户信息表中TWID字段进行AES算法加密,实现三重加密机制。
解密是指对TWID进行解密和对数据库IP,数据库名称、数据库账户名以及数据库密码进行解密。当租户登录以后,系统会按照租户数据库关系自动进行解密,此时,解密主要是解密数据库IP,数据库名称、数据库账户名以及数据库密码信息。使用AES算法解密所有加密的数据,生成租户与数据源的关系,当租户进行业务操作的时候,根据当前租户的TWID密文使用AES算法进行解密,获取解密的TWID进行相应的操作。
实施例4:
图2为本发明一实施例提供的一种SaaS软件多技术融合的数据隔离方法的架构图,如果只使用单一隔离策略,例如:只使用数据库进行隔离策略,为每个租户分配一个数据库,数据隔离效果最好,但是占用的资源最大,不能支持大规模租户应用场景;若是,在每一个数据库当中引入若干个Schema,在相同的服务器资源情况下,能够支持更多的租户应用。但是,基于Schema的数据隔离方法,数据隔离的强度弱于基于数据库的数据隔离方法。因此,本发明实施例的方法是,如图2所示:现有n个数据库,在每个数据库中创建m个Schema,在每个Schema中创建k个表,表中有多个租户信息。为每个租户引入一个TWID,实现各个租户数据的隔离访问。较为有效的提升了数据的安全性和隔离性。
图3为本发明一实施例提供的一种SaaS软件多技术融合的数据隔离方法流程图。如图3所示,本实施例的一种SaaS软件多技术融合的数据隔离方法,该方法的主要流程描述如下:
云平台数据库管理员:如图3所示,云平台数据库管理员,维护数据库、配置租户数据库,使用AES算法对必要字段进行数据加密,存入Mysql云数据库中。图3所示,云平台管理员审核租户的注册信息,同时生成TWID明文,使用AES算法对TWID加密,存储到Mysql云数据中。图3所示,关联租户到对应的Schema,并存储到Mysql云数据中。
租户:租户注册完成后,就可以登录系统。租户登录系统后,系统会将租户信息(包含租户加密TWID)存到session,再将session存储到Redis数据库中,进行缓存。通过缓存数据,避免了频繁查询数据库或其他数据源的时间消耗,从而提高了数据访问速度;
此时,可以开始业务操作;
获取当前租户的加密TWID,使用AES算法进行解密,获取TWID明文。通过TWID明文获取数据源执行业务操作。
系统:项目启动后,会查找所有租户数据库配置关系数据,租户加密的数据库链接以及租户信息,按照租户数据库关系使用AES算法解密所有加密的数据,并生成数据源,建立租户和数据源关系,放入内存。此时会使用AES算法对数据库信息、数据库账户信息表中加密的字段进行解密。
图4为本发明一实施例提供的一种SaaS软件多技术融合的数据隔离方法的租户信息获取对比流程图。如图4所示,左侧流程图是没有进行加密过程,它的主要流程描述如下:
S11、登录系统;
S12、打开租户注册表;
S13、获取租户TWID;
S14、分别打开Schema及其中表;
S15、查询主码为TWID的信息;
S16、获取租户信息。
没有加密方案,DBA是比较容易的看到租户的数据。如图4所示,右侧流程图过程是已进行加密,若要获取租户信息,则需要进行解密,它的主要流程描述如下:
S21、登录系统;
S22、打开租户注册表;
S23、自动解密数据库账户密码,解密数据库名称及IP;
S24、获取租户TWID密文;
S25、解密TWID,得到租户TWID明文;
S26、查询主码为TWID的信息;
S27、获取租户信息。
加密算法主要采用AES算法进行加密,AES是当前最流行的对称加密算法之一,它会把待加密字段(明文)分成一组一组的,每组长度相等,每次加密一组数据,直到将整个明文加密成,之后在将一块一块密文块拼接起来,形成密文,例如,设AES加密函数为E,则C=E(K+P),其中P为明文,K为密钥,C为密文。也就是说,把明文P和密钥K作为加密函数的参数输入,则加密函数E会输出密文C。加密与解密的密钥是相同的,若要进行解密,则设AES解密函数为D,则P=D(K+C),其中C为密文,K为密钥,P为明文。也就是说,把密文C和密钥K作为解密函数的参数输入,则解密函数会输出明文P。本实施例的一种SaaS软件多技术融合的数据隔离方法,该方法为每个租户引入一个TWID、使用AES算法分别对TWID加密、租户数据存储的数据库信息加密、租户存储的Schema加密,三重加密机制下,就不能直接的看到租户的数据。若需要查看某个租户的数据,需要进行解密,才能找到相应的租户信息,这就是如何提高了隔离性,也就是租户的数据安全性。
图5为本发明一实施例提供的一种SaaS软件多技术融合的数据隔离方法的初始流程图。如图5所示,本实施例的一种SaaS软件多技术融合的数据隔离方法,该方法的数据库分派流程描述如下。
1)云平台SaaS管理员登录创建系统信息,例如,创建2个云系统信息如下表所示:
系统ID | 系统名称 | 数据库数量(加密) | 描述 |
HGZSsys01 | 瀚光招商云1号 | (3) | 独角兽01 |
HGTRsys01 | 瀚光投融云1号 | (2) | 独角兽02 |
2)管理员配置数据库基本信息:例如,系统:(瀚光招商云1号)有3个数据库、系统:(瀚光投融云1号)有2个数据库,如下表所示:
4)管理员配置数据库访问信息(支持一个数据库多账号),例如,招商数据库:ZSDB01,有可登录账号3个、招商数据库:ZSDB03,有可登录账号2个、投融数据库:TRDB01,有可登录账号1个、投融数据库:TRDB02,有可登录账号1个。如下表所示:
数据库ID | 数据库账户名(加密) | 数据库密码(加密) | Schema数(加密) |
ZSDB01 | (ZSDB01LG01) | (1123456) | (5) |
...... | |||
ZSDB01 | (ZSDB01LG03) | (3123456) | (5) |
ZSDB03 | (ZSDB02LG01) | (112533) | (8) |
ZSDB03 | (ZSDB02LG02) | (585858) | (8) |
TRDB01 | (TRDB01LG01) | (336364) | (4) |
TRDB02 | (TRDB02LG01) | (846996) | (6) |
4)管理员配置Schema信息。例如,招商数据库:ZSDB01,有5个模式、招商数据库:ZSDB03,有8个模式、投融数据库:TRDB01,有4个模式、投融数据库:TRDB02,有6个模式、招商云1数据库1有6个模式、招商云1数据库2有12个模式,如下表所示:
5)系统发送邮件通知到DBA线下创建数据库,邮件的内容主要是数据库IP,数据库名称,数据库账户名,数据库密码,数据库Schema名称等,如下表示:
图6为本发明一实施例提供的租户信息注册及存储分配的具体步骤流程图。如图6所示,具体包括:
先注册成平台租户,生成LOGIN账号,方便租户查看--租户审核情况。租户填写手机号密码,通过短信验证成为注册成为云平台租户,如下表所示;
账号(LOGIN) | 手机号 | 密码 | 短信验证码 |
15266666666 | 123456 | 456385 |
注册成功以后,系统会加密密码123456。同时,系统生成LOGIN账号(不可更改),如下表所示;
账号(LOGIN) | 手机号 | 密码(加密) |
T010101 | 15266666666 |
选择认证租户类型。租户(ID:AdF54256856233231)提交租户审核信息,平台业务管理员审核通过后会绑定租户ID与账号的关系,如下表所示;
租户TID | 租户账号TUID(LOGIN) | |
AdF54256856233231 | T010101 |
云平台管理员审核通过后会生成TWID(租户工作ID),并且加密TWID,生成TWID_M(Zh12552152222221),并且写入租户信息,更改审核状态:1已审核,如下表所示;
绑定默认系统分配的TM(租户管理员)权限;
随机分配数据库和Schema,把TWID明文写入Schema关系表中,通过云平台随机算法匹配数据库,例如ZSDB03,选择Schema:ZSScm0307。如下表所示:
schema名称 | 数据库ID | TWID(租户工作ID)明文 |
ZSScm0101 | ZSDB01 | |
...... | ||
ZSScm0104 | ZSDB01 | |
ZSScm0105 | ZSDB01 | |
ZSScm0301 | ZSDB03 | |
...... | ||
ZSScm0307 | ZSDB03 | Zh12552152222221 |
ZSScm0308 | ZSDB03 | |
TRScm0101 | TRDB01 | |
.... | ||
TRScm0104 | TRDB01 | |
TRScm0201 | TRDB02 | |
.... | ||
TRScm0206 | TRDB02 |
图7为本发明一实施例提供的租户数据访问与存储的具体步骤流程图。如图7所示,具体包括:
租户进行登录。
账号/手机号 | 密码 |
T010101/15266666666 |
系统验证通过后,获取系统角色对应权限(租户管理员),获取租户基本信息,拿到租户-(LOGIN)账号T010101,通过账号(LOGIN)T010101获取账号与租户的关系,得到租户ID:AdF54256856233231
租户TID | 租户TUID(LOGIN) |
AdF54256856233231 | T010101 |
根据租户ID:AdF54256856233231,查询出经过加密后的TWID。
租户类型:=0(园区)|1(企业)
标记:=0(待审核租户)|1(已审核租户)
通过解密算法解密TWID,获取明文TWID,如下表为Zh12552152222221。
通过TWID明文:Zh12552152222221获取Schema表中Schema名称和数据库ID。
schema名称 | 数据库ID | TWID(租户工作ID)(明文) |
ZSScm0307 | ZSDB03 | Zh12552152222221 |
ZSScm0307 | ZSDB03 | Zh12552152222229 |
... | ... | ... |
ZSScm0303 | ZSDB03 | Zh12552152222222 |
ZSScm0303 | ZSDB03 | Zh12552152222226 |
... | ... | ... |
数据源连接池中已对名称、账户、密码、IP进行了解密,它包括:
数据库ID | 数据库账户名(加密) | 数据库密码(加密) | Schema数(加密) |
ZSDB03 | (ZSDB02LG02) | (585858) | (8) |
解密数据库账户、密码:(ZSDB01LG01)、(123456);
通过已知的IP、数据库名称、Schema、账户名、密码访问租户的数据库展示租户数据。
实施例5:
如图8所示,本发明实施例提供的SaaS软件多技术融合的数据隔离系统的信息实体:包含数据库数、系统ID、系统名称、描述信息属性。
数据库基本信息实体:包含数据库ID、数据库业务名、数据库IP(D)、数据库名称(D)、系统ID属性。
数据库访问信息实体:包含数据库ID(FK)、数据库账户(D)、访问密码(D)、Schema数属性。
Schema信息实体:包含Schema名称、数据库ID、TWID、Schema数属性。
租户信息实体:包含租户ID统一机构代码、TWID、联系人、联系电话、微信、邮箱、租户类型、租户名称属性。
租户系统信息实体:租户-账户、租户标识、租户密码(D)、TWID。
本发明用在招商云(招商SaaS)开发中,招商云的后端数据存储模式采用与本发明完全相同的技术。部分前端详见图9的SaaS软件数字招商-云平台。
本发明实施例在研发或者使用过程中取得了一些积极效果:
1)目前能检索到的专利大都是通过单一隔离策略来保证数据安全性。本发明将数据库模式的隔离策略、租户ID的隔离策略、Schema的数据隔离策略以及数据加密这四种技术融合一起,效果优于任何一种单一方法策略,大大提高了租户数据的隔离性和安全性。
2)本发明设计的三重加密机制,如图4是本发明实施例提供的租户信息获取对比流程图,左侧流程图是没有进行加密过程,没有加密方案,DBA是比较容易的看到租户的数据。右侧流程图过程是已进行加密,若需要查看某个租户的数据,需要进行解密,才能找到相应的租户信息,进而提高了隔离性,也就是租户的数据安全性。
3)项目启动后,会自动进行一次解密,获取数据库等信息。租户登录后,再将当前租户的加密TWID,使用AES算法进行解密,获取TWID明文,再去查找租户信息,时间效率高,耗时几乎和无加密过程一致。
应当注意,本发明的实施方式可以通过硬件、软件或者软件和硬件的结合来实现。硬件部分可以利用专用逻辑来实现;软件部分可以存储在存储器中,由适当的指令执行系统,例如微处理器或者专用设计硬件来执行。本领域的普通技术人员可以理解上述的设备和方法可以使用计算机可执行指令和/或包含在处理器控制代码中来实现,例如在诸如磁盘、CD或DVD-ROM的载体介质、诸如只读存储器(固件)的可编程的存储器或者诸如光学或电子信号载体的数据载体上提供了这样的代码。本发明的设备及其模块可以由诸如超大规模集成电路或门阵列、诸如逻辑芯片、晶体管等的半导体、或者诸如现场可编程门阵列、可编程逻辑设备等的可编程硬件设备的硬件电路实现,也可以用由各种类型的处理器执行的软件实现,也可以由上述硬件电路和软件的结合例如固件来实现。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,都应涵盖在本发明的保护范围之内。
Claims (10)
1.一种SaaS软件多技术融合的数据隔离方法,其特征在于,包括以下步骤:
通过将数据库模式的隔离策略、租户ID的隔离策略、Schema的数据隔离方法以及数据加密这四种技术方法进行融合,实现多数据库、多Schema以及租户ID等四位一体的数据隔离模型。
在每一个数据库当中,建立若干个Schema。
在每一个Schema中,创建多个租户,为每个租户引入一个租户工作ID TWID;并且对租户的TWID进行加密、租户数据存储的数据库信息加密、租户存储的Schema加密。
2.如权利要求1所述的SaaS软件多技术融合的数据隔离方法,其特征在于,所述SaaS软件多技术融合的数据隔离方法的多技术融合是指:将数据库隔离技术、Schema隔离技术、租户ID隔离技术以及数据加密技术相结合;数据库隔离技术是使用数据库分别存储每个租户信息,在每个数据库中创建多个Schema,并且在每个Schema中创建多个租户信息,通过租户ID进行隔离。
三重加密机制:首先,通过SaaS管理员创建云系统信息,并配置租户数据库基本信息,维护对应的数据库;使用AES算法对数据库信息、数据库账户信息、租户信息表的必要字段进行加密;其中,第一重加密是对数据库信息表中的数据库IP,数据库名称重要字段通过AES算法进行加密;第二重加密是数据库账户信息表的数据库账户名,数据库密码重要字段通过AES算法进行加密;第三重加密是对租户信息表中TWID字段进行AES算法加密,实现三重加密机制。
解密是指对TWID进行解密和对数据库IP,数据库名称、数据库账户名以及数据库密码进行解密;当租户登录以后,系统会按照租户数据库关系自动进行解密,此时,解密主要是解密数据库IP,数据库名称、数据库账户名以及数据库密码信息;使用AES算法解密所有加密的数据,生成租户与数据源的关系,当租户进行业务操作的时候,根据当前租户的加密TWID使用AES算法进行解密,获取解密的TWID进行相应的操作。
3.如权利要求1所述的SaaS软件多技术融合的数据隔离方法,其特征在于,所述SaaS软件多技术融合的数据隔离方法,具体包括:
云平台数据库管理员:维护数据库、配置租户数据库,使用AES算法对必要字段进行数据加密,存入关系数据库,云平台管理员审核租户的注册信息,同时生成TWID明文,使用AES算法对TWID加密,存储到Mysql云数据中,关联租户到对应的Schema,并存储到Mysql云数据中;
租户:租户注册完成后,登录系统,租户一般租户登录系统后,系统会将租户信息存到session,再将session存储到Redis数据库中,进行缓存;
开始业务操作;
获取当前租户的加密TWID,使用AES算法进行解密,获取TWID明文;通过TWID明文获取数据源执行业务操作。
系统:项目启动后,会查找所有租户数据库配置关系数据,租户加密的数据库链接以及租户信息,按照租户数据库关系使用AES算法解密所有加密的数据,并生成数据源,建立租户和数据源关系,放入内存;使用AES算法对数据库信息、数据库账户信息表中加密的字段进行解密。
4.如权利要求1所述的SaaS软件多技术融合的数据隔离方法,其特征在于,所述SaaS软件多技术融合的数据隔离方法有n个数据库,在每个数据库中创建m个Schema,在每个Schema中创建k个表,表中有多个租户信息;为每个租户引入一个TWID,实现各个租户数据的隔离访问。
5.如权利要求1所述的SaaS软件多技术融合的数据隔离方法,其特征在于,所述SaaS软件多技术融合的数据隔离方法的租户信息获取对比包括:
S11、登录系统;
S12、打开租户注册表;
S13、获取租户TWID;
S14、分别打开Schema及其中表;
S15、查询主码为TWID的信息;
S16、获取租户信息。
没有加密方案,DBA是比较容易的看到租户的数据。因此,以下过程是进行加密了的。此时,若要获取租户信息,则需要进行解密,它的主要流程描述如下:
S21、登录系统;
S22、打开租户注册表;
S23、自动解密数据库账户密码,解密数据库名称及IP;
S24、获取租户TWID密文;
S25、解密TWID,得到租户TWID明文;
S26、查询主码为TWID的信息;
S27、获取租户信息。
加密算法采用AES算法进行加密,把待加密字段分成一组一组的,每组长度相等,每次加密一组数据,直到将整个明文加密成,之后在将一块一块密文块拼接起来,形成密文,把明文P和密钥K作为加密函数的参数输入,则加密函数E会输出密文C;加密与解密的密钥是相同的,若要进行解密,则设AES解密函数为D,则P=D(K+C),其中C为密文,K为密钥,P为明文;把密文C和密钥K作为解密函数的参数输入,则解密函数会输出明文P;为每个租户引入一个TWID、使用AES算法分别对租户TWID加密、租户数据存储的数据库信息加密、租户存储的Schema加密;若需要查看某个租户的数据,需要进行解密。
6.如权利要求1所述的SaaS软件多技术融合的数据隔离方法,其特征在于,所述SaaS软件多技术融合的数据隔离方法的数据库分派,包括以下步骤:
1)云平台SaaS管理员登录创建系统多数据库(n个);
2)管理员配置数据库基本信息、数据库访问;
3)管理员为第i个数据库配置多个模式(mi个Schema);
4)管理员配置Schema信息;
5)系统发送邮件通知到DBA线下创建数据库,邮件的内容是数据库IP,数据库名称,数据库账户名,数据库密码,数据库Schema名称;
所述SaaS软件多技术融合的数据隔离方法的租户信息注册及存储分配的具体步骤包括:
先注册成平台租户,生成LOGIN账号,租户填写手机号密码,通过短信验证成为注册成为云平台租户;
注册成功以后,系统生成LOGIN账号;
选择认证租户类型,租户提交租户审核信息,平台业务管理员审核通过后会绑定租户ID与账号的关系;
云平台管理员审核通过后会生成TWID,并且加密TWID,并且写入租户信息,更改审核状态;
绑定默认系统分配的TM权限;
随机分配数据库和Schema,把TWID明文写入Schema关系表中,通过云平台随机算法匹配数据库:ZSDB_X,选择Schema:ZSScm_Y;
所述SaaS软件多技术融合的数据隔离方法的租户数据访问与存储的具体步骤包括:
租户进行登录;
系统验证通过后,获取系统角色对应权限,获取租户基本信息,拿到租户的账号,通过账户获取租户的ID,从而得到租户的TWID;
根据租户的ID,例如:AdF54256856233231,查询出经过加密后的TWID;
解密:当项目启动时,系统会自动将数据源连接池中的数据库名称、账户、密码、IP进行解密;
通过解密算法解密TWID来获取租户的TWID明文,通过TWID明文,来获取Schema表中Schema名称和数据库ID;
此时,通过已知的IP、数据库名称、Schema、账户名、密码访问租户的数据库展示租户数据。
7.一种计算机设备,其特征在于,所述计算机设备包括存储器和处理器,所述存储器存储有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行权利要求1~6任意一项所述SaaS软件多技术融合的数据隔离方法。
8.一种计算机可读存储介质,存储有计算机程序,所述计算机程序被处理器执行时,使得所述处理器执行权利要求1~6任意一项所述SaaS软件多技术融合的数据隔离方法。
9.一种信息数据处理终端,其特征在于,所述信息数据处理终端用于实现权利要求1~6任意一项所述SaaS软件多技术融合的数据隔离方法。
10.一种基于权利要求1~6任意一项所述SaaS软件多技术融合的数据隔离方法的SaaS软件多技术融合的数据隔离系统,其特征在于,所述SaaS软件多技术融合的数据隔离系统的信息实体:包含数据库数、系统ID、系统名称、描述信息属性。
数据库基本信息实体:包含数据库ID、数据库业务名、数据库IP、数据库名称、系统ID属性;
数据库访问信息实体:包含数据库ID、数据库账户、访问密码、Schema数属性;
Schema信息实体:包含Schema名称、数据库ID、TWID、Schema数属性;
租户信息实体:包含租户ID统一机构代码、TWID、联系人、联系电话、微信、邮箱、租户类型、租户名称属性;
租户系统信息实体:租户-账户、租户标识、租户密码、TWID。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311693928.8A CN117971798A (zh) | 2023-12-11 | 2023-12-11 | SaaS软件多技术融合的数据隔离方法、系统及设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311693928.8A CN117971798A (zh) | 2023-12-11 | 2023-12-11 | SaaS软件多技术融合的数据隔离方法、系统及设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117971798A true CN117971798A (zh) | 2024-05-03 |
Family
ID=90855357
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311693928.8A Pending CN117971798A (zh) | 2023-12-11 | 2023-12-11 | SaaS软件多技术融合的数据隔离方法、系统及设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117971798A (zh) |
-
2023
- 2023-12-11 CN CN202311693928.8A patent/CN117971798A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10002152B2 (en) | Client computer for updating a database stored on a server via a network | |
EP2430789B1 (en) | Protection of encryption keys in a database | |
CN101587479B (zh) | 面向数据库管理系统内核的数据加解密系统及其方法 | |
US9031876B2 (en) | Managing keys for encrypted shared documents | |
KR101371608B1 (ko) | Dbms 및 데이터베이스에서 암호화 방법 | |
US11811907B2 (en) | Data processing permits system with keys | |
WO2020206953A1 (zh) | 一种数据处理方法及系统 | |
US8769302B2 (en) | Encrypting data and characterization data that describes valid contents of a column | |
CN106992851A (zh) | 基于TrustZone的数据库文件口令加解密方法、装置及终端设备 | |
CN110162988A (zh) | 一种基于业务系统的敏感数据加密方法 | |
CN112307515A (zh) | 基于数据库的数据处理方法、装置、电子设备和介质 | |
US9436849B2 (en) | Systems and methods for trading of text based data representation | |
US11947684B2 (en) | Searching encrypted data | |
CN117009988A (zh) | 一种基于区块链的加密数据存储和查询方法 | |
CN117971798A (zh) | SaaS软件多技术融合的数据隔离方法、系统及设备 | |
US20230067054A1 (en) | Encryption of database log files | |
CN107704775A (zh) | 对数据导航信息进行aes加密存储的方法 | |
Huang et al. | A transparent framework based on accessing bridge and mobile app for protecting database privacy with PKI | |
CA3235186A1 (en) | Personal data protection | |
KONDAREDDY et al. | Self-Determining Approach to Encrypted Cloud Databases | |
Tera et al. | Computational Analysis of Encrypted Database to Provide Confidentiality |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination |