CN110851853A - 一种数据隔离方法、装置、计算机设备及存储介质 - Google Patents
一种数据隔离方法、装置、计算机设备及存储介质 Download PDFInfo
- Publication number
- CN110851853A CN110851853A CN201910882021.3A CN201910882021A CN110851853A CN 110851853 A CN110851853 A CN 110851853A CN 201910882021 A CN201910882021 A CN 201910882021A CN 110851853 A CN110851853 A CN 110851853A
- Authority
- CN
- China
- Prior art keywords
- data
- user
- database
- data source
- sub
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2282—Tablespace storage structures; Management thereof
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Software Systems (AREA)
- Bioethics (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- Computing Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请实施例属于人工智能技术领域,涉及一种数据隔离方法。本申请实施例通过对不同的用户群体进行划分数据库,一个用户群对应一个数据分库并对每个数据分库配置数据源,设置数据源管理器以分配相应的数据源给用户与对应的数据分库连接。所述数据源管理器中存储有其对对应的数据分库的用户信息,将用户群及其所有用户与所述数据源关联映射,当用户访问数据库时,只能通过其对应数据源访问到相应的数据分库,单一访问数据库,从而提高数据安全。另外,通过单一访问的方式,不用轮询所有数据分库,数据访问效率高。本申请还提供一种数据隔离装置、计算机设备及存储介质。本申请实施例通过单一访问数据库,将数据隔离,以保证数据安全。
Description
技术领域
本申请涉及人工智能技术领域,具体涉及交通道路拥堵预测技术领域,尤其涉及一种数据隔离方法、装置、计算机设备及存储介质。
背景技术
随着信息化社会的发展,人们越来越习惯于使用网络来进行业务,使得通过网络进行的业务的数量在不断增加,而将大量数据保存在一个数据库或者数据表中的方法,会使数据库的运行效率大大降低,所以人们开始采用分库分表技术,即,将数据库中数据根据预设的规则拆分为多个数据库,以解决单一数据库的性能瓶颈问题。
目前,数据库的分库方法一般是针对系统进行分库的,将不同业务的数据量、访问量分库存储。但是,随着公司内各个系统的互通互联,单点登录和统一授权是访问数据库的主要方式,而这又带来了关联泄漏的风险,数据放在一起,当某一系统出现安全风险时,可能导致其他的系统跟着出现安全风险。
发明内容
本申请实施例的目的在于提出一种数据隔离方法、装置、计算机设备及存储介质,通过对用户群进行划分数据库,一个用户群对应一个数据分库,并且每个数据分库分配相应的数据源,同个用户群中的用户信息存储在数据源中,在访问时,将用户的用户信息与用户表中的信息匹配获取相应的数据源,通过该数据源从相应的数据分库进行数据访问,进而防止泄露,提高数据访问安全性。
为了解决上述技术问题,本申请实施例提供一种数据隔离方法,采用了如下所述的技术方案:
一种数据隔离方法,包括下述步骤:
根据用户群将数据库划分成多个数据分库,一个数据分库对应一个用户群;
对所述数据分库进行分配数据源,其中一个所述数据源对应一个所述数据分库;
建立数据源管理器,所述数据源管理器映射所述用户群和数据源;
当接收到用户访问请求时,所述数据源管理器根据所述请求中的用户信息分配一个所述用户所在用户群对应的所述数据源以使所述用户连接到对应的数据分库进行数据访问。
进一步地,所述建立数据源管理器,所述数据源管理器映射所述用户群和数据源,包括:
获取所述数据分库对应的所有数据源,以及所述数据分库对应的用户群中的所有用户信息;
基于所述用户群、用户信息和所述数据源,建立映射表。
进一步地,所述访问请求包括请求用户的用户账号和登录密码,则所述当接收到用户访问请求时,所述数据源管理器根据所述请求中的用户信息分配一个所述用户所在用户群对应的所述数据源以使所述用户连接到对应的数据分库进行数据访问具体包括以下步骤:
遍历所述映射表,验证所述请求用户的用户账号和登录密码是否存在所述映射表中;
若存在,则验证通过,查找所述请求用户所在的用户群,根据所述用户群与所述数据源的映射关系分配一个所述数据源以连接对应的数据分库进行数据访问。
进一步地,所述用户信息包括所述用户群中所有用户的用户账号和用户密码,所述遍历所述映射表,验证所述请求用户的用户账号和用户密码是否存在所述映射表中;若存在,则验证通过,查找所述请求用户所在的用户群,根据所述用户群与所述数据源的映射关系分配一个所述数据源以连接对应的数据分库进行数据访问的步骤具体包括:
遍历所述映射表,验证所述请求用户的账户是否与所述映射表中的任意用户账号匹配;
若匹配,则继续验证所述请求用户的登录密码是否与所述用户账号对应的用户密码匹配;
若匹配,则验证通过,查找所述请求用户所在的用户群以分配一条对应的所述数据源与所述数据分库建立连接,创建会话进行数据访问。
进一步地,当所述请求用户与所述数据库建立连接,创建会话时,对所述数据源设置标识标签;
所述当接收到用户访问请求时,所述数据源管理器根据所述请求中的用户信息分配一个所述用户所在用户群对应的所述数据源以使所述用户连接到对应的数据分库进行数据访问的步骤包括:
当接收到用户访问请求时,所述数据源管理器判断所述访问请求是否携有标识标签;
若有,则提取访问请求的标识标签,通过所述标识标签获取所述数据源以连接对应的数据分库进行数据访问。
进一步地,在根据用户群将数据库划分成多个数据分库时,根据所述用户群的用户量分配或者扩展所述数据库的存储空间。
进一步地,所述根据所述用户群的用户量分配或者扩展所述数据库的存储空间的步骤具体包括:
判断所述数据分库的存储空间是否满足当前用户群的用户量;
若不满足,则对所述数据分库的存储空间进行扩展;
当所述数据分库扩展至极限存储空间仍然不足时,以所述数据分库为主库,增设另一个数据分库为从库,且两个数据分库关联以使数据同步。
为了解决上述技术问题,本申请实施例还提供一种一种数据隔离装置,采用了如下所述的技术方案:
数据库划分模块,用于根据用户群将数据库划分成多个数据分库,一个数据分库对应一个用户群;
数据源分配模块,用于对所述数据分库进行分配数据源,其中一个所述数据源对应一个所述数据分库;
数据源管理模块,用于建立数据源管理器,所述数据源管理器映射所述用户群和数据源;
分配模块,用于当接收到用户访问请求时,所述数据源管理器根据所述请求中的用户信息分配一个所述用户所在用户群对应的所述数据源以使所述用户连接到对应的数据分库进行数据访问。
为了解决上述技术问题,本申请实施例还提供一种计算机设备,采用了如下所述的技术方案:
一种计算机设备,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器执行所述计算机程序时实现上述所述的数据隔离方法的步骤。
为了解决上述技术问题,本申请实施例还提供一种计算机可读存储介质,采用了如下所述的技术方案:
一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述所述的数据隔离方法的步骤。
与现有技术相比,本申请实施例主要有以下有益效果:
本申请实施例提供一种数据隔离方法、装置、计算机设备及存储介质,该方法包括下述步骤:根据用户群将数据库划分成多个数据分库,一个数据分库对应一个用户群,以将不同用户群的数据隔离。对所述数据分库进行分配数据源,所述数据源是连接所述用户群中用户与对应的数据分库的通道,其中一个所述数据源对应一个所述数据分库,使用户对数据库进行单一访问,进一步保证数据安全。建立数据源管理器,所述数据源管理器映射所述用户群和数据源;当接收到用户访问请求时,所述数据源管理器根据所述请求中的用户信息分配一条所述用户所在用户群对应的所述数据源以使所述用户连接到对应的数据分库进行数据访问。本申请实施例通过对不同的用户群体进行划分数据库,一个用户群对应一个数据分库并对每个数据分库配置数据源,设置数据源管理器以分配相应的数据源给用户与对应的数据分库连接。所述数据源管理器中存储有其对对应的数据分库的用户信息,将用户群及其所有用户与所述数据源关联映射,当用户访问数据库时,只能通过其对应数据源访问到相应的数据分库,单一访问数据库,从而提高数据安全。另外,通过单一访问的方式,不用轮询所有数据分库,数据访问效率高。
附图说明
为了更清楚地说明本申请中的方案,下面将对本申请实施例描述中所需要使用的附图作一个简单介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请可以应用于其中的示例性系统架构图;
图2根据本申请的数据隔离方法的一个实施例的流程图;
图3是根据本申请的数据隔离装置的一个实施例的结构示意图;
图4是根据本申请的计算机设备的一个实施例的结构示意图。
具体实施方式
除非另有定义,本文所使用的所有的技术和科学术语与属于本申请的技术领域的技术人员通常理解的含义相同;本文中在申请的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本申请;本申请的说明书和权利要求书及上述附图说明中的术语“包括”和“具有”以及它们的任何变形,意图在于覆盖不排他的包含。本申请的说明书和权利要求书或上述附图中的术语“第一”、“第二”等是用于区别不同对象,而不是用于描述特定顺序。
在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。
为了使本技术领域的人员更好地理解本申请方案,下面将结合附图,对本申请实施例中的技术方案进行清楚、完整地描述。
如图1所示,系统架构100可以包括终端设备101、102、103,网络104和服务器105。网络104用以在终端设备101、102、103和服务器105之间提供通信链路的介质。网络104可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
用户可以使用终端设备101、102、103通过网络104与服务器105交互,以接收或发送消息等,操作数据隔离中的业务及应用。终端设备101、102、103上可以安装有各种通讯客户端应用,例如网页浏览器应用、购物类应用、搜索类应用、即时通信工具、邮箱客户端、社交平台软件等。
终端设备101、102、103可以是具有显示屏并且支持网页浏览的各种电子设备,包括但不限于用户设备、网络设备或用户设备与网络设备通过网络相集成所构成的设备。所述用户设备其包括但不限于任何一种可与用户通过触摸板进行人机交互的移动电子产品,例如智能手机、平板电脑等,所述移动电子产品可以采用任意操作系统,如android操作系统、iOS操作系统等。其中,所述网络设备包括一种能够按照事先设定或存储的指令,自动进行数值计算和信息处理的电子设备,其硬件包括但不限于微处理器、专用集成电路(ASIC)、可编程门阵列(FPGA)、数字处理器(DSP)、嵌入式设备等。所述网络设备其包括但不限于计算机、网络主机、单个网络服务器、多个网络服务器集或多个服务器构成的云;在此,云由基于云计算(Cloud Computing)的大量计算机或网络服务器构成,其中,云计算是分布式计算的一种,由一群松散耦合的计算机集组成的一个虚拟超级计算机。所述网络包括但不限于互联网、广域网、城域网、局域网、VPN网络、无线自组织网络(Ad Hoc网络)等。当然,本领域技术人员应能理解上述终端设备仅为举例,其他现有的或今后可能出现的终端设备如可适用于本申请,也应包含在本申请保护范围以内,并在此以引用方式包含于此。
服务器105可以是一台服务器,或者由若干台服务器组成的服务器集群,或者是一个云计算服务中心。其也可以是提供各种服务的服务器,例如对终端设备101、102、103上显示的页面提供支持的后台服务器。
需要说明的是,本申请实施例所提供的数据隔离方法一般由终端设备执行,相应地,数据隔离装置一般设置于终端设备中。
应该理解,图1中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。
继续参考图2,示出了根据本申请的一种数据隔离方法的一个实施例的流程图。所述的数据隔离方法,包括以下步骤:
步骤201,根据用户群将数据库划分成多个数据分库,一个数据分库对应一个用户群。
在本实施例中,数据隔离方法运行于其上的电子设备(例如图1所示的终端设备)可以通过有线连接方式或者无线连接方式根据用户群将数据库划分成多个数据分库。需要指出的是,上述无线连接方式可以包括但不限于3G/4G连接、WiFi连接、蓝牙连接、WiMAX连接、Zigbee连接、UWB(ultra wideband)连接、以及其他现在已知或将来开发的无线连接方式。
在本申请实施例中,所述数据库根据用户群体分成多个数据分库,即将数据库水平切分成多个分库,将数据分布到不同的DB(DataBase,数据库)服务器上。例如,某公司包括A、B、C.....等等子公司,每一个子公司设置一个分库存储数据量和访问。每个子公司的所有用户即为一个用户群,用户所属某个用户群,在读取数据时,根据所述用户所在的用户群对应的数据分库获取数据。
进一步地,在根据用户群将数据库划分成多个数据分库时,根据所述用户群的用户量分配或者扩展所述数据分库的存储空间。具体的,本实施例在分配所述数据分库的存储空间时,根据所述用户群的用户量进行设置。当所述用户群中的用户量变大时,通过判断所述数据分库的存储空间是否满足当前用户群的用户量,当其不满足时,则对所述数据分库的存储空间进行扩展。
需要说明的是,在对所述数据分库进行增加集群扩展时,当所述数据分库无法扩容或者所述数据分库扩展至极限存储空间仍然不足时,以所述数据分库为主库,增设另一个数据分库为从库,且两个数据分库关联以使数据同步。
在本实施例的一种可实现方式中,采用MySQL主从复制实现数据库同步,并将所述数据分库的读写操作分离,由主数据分库提供只写操作,从数据分库提供只读操作,从数据分库从主数据分库同步数据。
步骤202:对数据分库进行分配数据源,其中一个数据源对应一个数据分库。
在本申请实施例中,所述数据源(Data Source)是指数据库应用程序所使用的数据库或者数据库服务器,是提供某种所需要数据的器件或原始媒体。所述数据源中存储了所有建立数据库连接的信息。本实施例通过提供正确的数据源名称以找到相应的数据库连接。换而言之,所述数据源定义了用户如何从数据库中获取数据,例如包括连接到实际数据库的路径(不包括真正的数据)以及记录连接到哪个数据库和如何连接。数据源可以部署在服务器中,也可以部署在客户端中,在本申请实施例中,所述数据源部署在服务器中。
进一步地,一个所述数据分库对应多个数据源,一个所述数据源只能对应一个数据分库,所述数据分库通过其对应的任意一个所述数据源与用户建立连接。
步骤203,建立数据源管理器,数据源管理器映射用户群和数据源。
在本申请实施例中,所述数据源管理器用于管理所述数据源,其将所述用户群及其所有用户、所述数据源以及所述数据分库进行映射。根据映射关系,分配用户相应的数据源以连接到所述用户所在用户群对应的所述数据分库中。
进一步地,本实施例在所述建立数据源管理器,映射所述用户群和数据源时,首先获取所述数据分库对应的所有数据源,以及所述数据分库对应的用户群中的所有用户信息;再基于所述用户群、用户信息和所述数据源,建立映射表。其中,所述映射表映射所述用户群及其所有用户、所述数据源以及所述数据分库的对应关系。
在本实施例的一个可实施方式中,所述映射表如表1所示,所述映射表包括用户群及其用户信息、数据源和数据分库,基于所述映射表,可快速找出所述用户群及其所有用户和所述数据源、以及所述数据源和所述数据分库之间的映射关系,以便所述数据源管理器分配相应的数据源。
步骤204:当接收到用户访问请求时,数据源管理器根据请求中的用户信息分配一个用户所在用户群对应的数据源以使用户连接到对应的数据分库进行数据访问。
在本申请实施例中,当接收到用户的访问请求时,根据所述映射表,所述数据源管理器分配一条对应的数据源给所述用户,使之连接到对应的数据分库中。
进一步地,所述数据源管理器在分配所述数据源时,根据所述访问请求中携带的用户信息,从所述映射表中查找所述用户对应的用户群,所述数据源管理器根据所述用户群,分配一个相应的数据源,以使所述用户连接到所述数据源对应的所述数据分库中。具体的,所述访问请求包括请求用户的用户账号和登录密码,在接收到用户访问请求时,所述数据源管理器遍历所述映射表,验证所述请求用户的用户账号和登录密码是否存在所述映射表中;若存在,则验证通过,查找所述请求用户所在的用户群,根据所述用户群与所述数据源的映射关系分配一个所述数据源以连接对应的数据分库进行数据访问。更具体的,所述用户信息包括所述用户群中所有用户的用户账号和用户密码,在所述遍历所述映射表验证所述请求用户的用户账号和用户密码是否存在所述映射表时,首先验证所述请求用户的账户是否与所述映射表中的任意用户账号匹配,当与其中一个用户账号匹配时,则继续验证所述请求用户的登录密码是否与所述用户账号对应的用户密码匹配,若匹配,则验证通过,查找所述请求用户所在的用户群以分配一条对应的所述数据源与所述数据分库建立连接,创建会话进行数据访问。
在本申请实施例中,由于用户账号是唯一的,在对所述用户信息匹配过程和用户验证的过程是相同的,都是先对用户账号匹配成功后再对密码进行验证,以节约程序为原则,本实施例中数据源的查询过程即是登录验证过程,在所述用户信息匹配成功后,可由所述数据源管理器直接分配相应的数据源,以与所述数据分库建立连接,创建回话。本实施例可节约程序,提高访问效率。
需要说明的是,所述数据源管理器在分配数据源时,分配的是处于空闲状态的数据源。当所述数据源用于连接用户到数据分库时,对所述数据源设置忙碌标识,在所述用户断开与数据分库的连接后,撤销所述忙绿标识。
再以表1为例,本实施例中数据源管理器通过将所述用户群中的用户的用户账号及用户密码与其对应的所有数据源进行映射。如表1中映射表中存储所有所述数据源、所述数据分库和所述用户群及其所有用户信息的映射关系。当用户请求访问数据库时,通过所述数据源管理器进行验证请求用户的用户信息,以查询所述用户对应的数据源,通过所述数据源只能连接到单一的数据分库,从而的降低关联账号对数据泄露的风险。
具体地,当用户中的用户账号和登录密码与所述映射表中的某一用户账号和用户密码对应,则匹配成功,获取一个该用户对应的数据源作为连接工具以使所述用户和该数据源对应的数据分库连接。
例如,用户A为用户群A的一个用户,用户A发出的访问请求中包含其自身的用户信息,用户账号和登录密码,所述数据源管理器可从所述映射表中与之对应的用户账户和用户密码,根据其对应的用户群A可匹配出空闲状态的数据源A101连接用户群A对应的数据分库。
在本申请实施例中,所述会话是指所述用户与交互系统或者服务器的通讯过程,如从输入账户密码进入操作系统到退出操作系统的过程、从数据库中获取数据的过程等等。所述会话将所述用户发出的不同请求关联,建立就应当一直存在,直到用户断开会话或者用户空闲时间超过了某一个时间界限,容器才应当释放该会话资源。在会话的存活期间,用户可能给服务器发送了很多请求,该用户的这些请求信息都可以存储在会话中。
具体地,会话设有会话ID,当请求用户的账号和密码均验证通过时,就会返回用户端一个会话ID,会话ID用于标识不同的用户。在访问数据库时,首先检查是否存在会话ID,如果不存在则创建一个(在初次访问,或者长时间不访问后,再次访问);如果存在,则载入对应的会话变量,会话变量存储了当前会话ID该用户访问的信息。
进一步地,所述数据源设有标签作为标识。在用户登录系统首次访问时,若用户通过验证,与其对应的数据分库建立会话,服务器就会获取并记录所述数据源的标签,用户再次请求获取数据库中的信息时,就会直接通过这个标签获取数据源,提高访问速度。
具体地,当接收到用户访问请求时,所述数据源管理器判断所述访问请求是否携有标识标签;若有,则提取访问请求的标识标签,通过所述标识标签获取所述数据源以连接对应的数据分库进行数据访问。
进一步地,由于用户验证在所述数据源管理器进行,当有用户信息修改时,例如对某一用户的用户密码修改或者添加新用户信息或者删除某一用户账号时,需要立即更新所述映射表中的用户信息。
本申请实施例通过对不同的用户群体进行划分数据库,一个用户群对应一个数据分库并对每个数据分库配置数据源,设置数据源管理器以分配相应的数据源给用户与对应的数据分库连接。所述数据源管理器中存储有其对对应的数据分库的用户信息,将用户群及其所有用户与所述数据源关联映射,当用户访问数据库时,只能通过其对应数据源访问到相应的数据分库,单一访问数据库,从而提高数据安全。另外,通过单一访问的方式,不用轮询所有数据分库,数据访问效率高。
应该理解的是,虽然附图的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,其可以以其他的顺序执行。而且,附图的流程图中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,其执行顺序也不必然是依次进行,而是可以与其他步骤或者其他步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
进一步参考图3,作为对上述图2所示方法的实现,本申请提供了一种数据隔离装置装置的一个实施例,该装置实施例与图2所示的方法实施例相对应,该装置具体可以应用于各种电子设备中。
如图3所示,本实施例所述的数据隔离装置装置300包括:数据库划分模块301,数据源分配模块302,数据源管理模块303和分配模块304。其中:
数据库划分模块301,用于根据用户群将数据库划分成多个数据分库,一个数据分库对应一个用户群;
数据源分配模块302,用于对所述数据分库进行分配数据源,其中一个所述数据源对应一个所述数据分库;
数据源管理模块303,用于建立数据源管理器,所述数据源管理器映射所述用户群和数据源;
分配模块304,用于当接收到用户访问请求时,所述数据源管理器根据所述请求中的用户信息分配一个所述用户所在用户群对应的所述数据源以使所述用户连接到对应的数据分库进行数据访问。
在本实施例中,通过数据库划分模块301对根据用户群将数据库划分成多个数据分库,一个数据分库对应一个用户群,以将不同用户群的数据隔离。数据源分配模块302对所述数据分库进行分配数据源,所述数据源是连接所述用户群中用户与对应的数据分库的通道,其中一个所述数据源对应一个所述数据分库,使用户对数据库进行单一访问,进一步保证数据安全。数据源管理模块303建立数据源管理器,所述数据源管理器映射所述用户群和数据源。分配模块304在接收到用户访问请求时,所述数据源管理器根据所述请求中的用户信息分配一条所述用户所在用户群对应的所述数据源以使所述用户连接到对应的数据分库进行数据访问。本申请实施例通过对不同的用户群体进行划分数据库,一个用户群对应一个数据分库并对每个数据分库配置数据源,设置数据源管理器以分配相应的数据源给用户与对应的数据分库连接。所述数据源管理器中存储有其对对应的数据分库的用户信息,将用户群及其所有用户与所述数据源关联映射,当用户访问数据库时,只能通过其对应数据源访问到相应的数据分库,单一访问数据库,从而提高数据安全。另外,通过单一访问的方式,不用轮询所有数据分库,数据访问效率高。
具体地,所述数据库划分模块301具体用于所述数据库根据用户群体分成多个数据分库,即将数据库水平切分成多个分库,将数据分布到不同的DB(DataBase,数据库)服务器上。进一步地,在根据用户群将数据库划分成多个数据分库时,根据所述用户群的用户量分配或者扩展所述数据分库的存储空间。具体的,本实施例在分配所述数据分库的存储空间时,根据所述用户群的用户量进行设置。当所述用户群中的用户量变大时,通过判断所述数据分库的存储空间是否满足当前用户群的用户量,当其不满足时,则对所述数据分库的存储空间进行扩展。
在所述数据源分配模块302中,一个所述数据分库对应多个数据源,一个所述数据源只能对应一个数据分库,所述数据分库通过其对应的任意一个所述数据源与用户建立连接。
所述数据源管理模块303具体用于管理所述数据源,其将所述用户群及其所有用户、所述数据源以及所述数据分库进行映射。根据映射关系,分配用户相应的数据源以连接到所述用户所在用户群对应的所述数据分库中。进一步地,本实施例在所述建立数据源管理器,映射所述用户群和数据源时,首先获取所述数据分库对应的所有数据源,以及所述数据分库对应的用户群中的所有用户信息;再基于所述用户群、用户信息和所述数据源,建立映射表。其中,所述映射表映射所述用户群及其所有用户、所述数据源以及所述数据分库的对应关系。
所述分配模块304在当接收到用户的访问请求时,根据所述映射表,所述数据源管理器分配一条对应的数据源给所述用户,使之连接到对应的数据分库中。进一步地,所述数据源管理器在分配所述数据源时,根据所述访问请求中携带的用户信息,从所述映射表中查找所述用户对应的用户群,所述数据源管理器根据所述用户群,分配一个相应的数据源,以使所述用户连接到所述数据源对应的所述数据分库中。具体的,所述访问请求包括请求用户的用户账号和登录密码,在接收到用户访问请求时,所述数据源管理器遍历所述映射表,验证所述请求用户的用户账号和登录密码是否存在所述映射表中;若存在,则验证通过,查找所述请求用户所在的用户群,根据所述用户群与所述数据源的映射关系分配一个所述数据源以连接对应的数据分库进行数据访问。更具体的,所述用户信息包括所述用户群中所有用户的用户账号和用户密码,在所述遍历所述映射表验证所述请求用户的用户账号和用户密码是否存在所述映射表时,首先验证所述请求用户的账户是否与所述映射表中的任意用户账号匹配,当与其中一个用户账号匹配时,则继续验证所述请求用户的登录密码是否与所述用户账号对应的用户密码匹配,若匹配,则验证通过,查找所述请求用户所在的用户群以分配一条对应的所述数据源与所述数据分库建立连接,创建会话进行数据访问。
为解决上述技术问题,本申请实施例还提供计算机设备。具体请参阅图4,图4为本实施例计算机设备基本结构框图。
所述计算机设备4包括通过系统总线相互通信连接存储器41、处理器42、网络接口43。需要指出的是,图中仅示出了具有组件41-43的计算机设备4,但是应理解的是,并不要求实施所有示出的组件,可以替代的实施更多或者更少的组件。其中,本技术领域技术人员可以理解,这里的计算机设备是一种能够按照事先设定或存储的指令,自动进行数值计算和/或信息处理的设备,其硬件包括但不限于微处理器、专用集成电路(ApplicationSpecific Integrated Circuit,ASIC)、可编程门阵列(Field-Programmable GateArray,FPGA)、数字处理器(Digital Signal Processor,DSP)、嵌入式设备等。
所述计算机设备可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。所述计算机设备可以与用户通过键盘、鼠标、遥控器、触摸板或声控设备等方式进行人机交互。
所述存储器41至少包括一种类型的可读存储介质,所述可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘等。在一些实施例中,所述存储器41可以是所述计算机设备4的内部存储单元,例如该计算机设备4的硬盘或内存。在另一些实施例中,所述存储器41也可以是所述计算机设备4的外部存储设备,例如该计算机设备4上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(FlashCard)等。当然,所述存储器41还可以既包括所述计算机设备4的内部存储单元也包括其外部存储设备。本实施例中,所述存储器41通常用于存储安装于所述计算机设备4的操作系统和各类应用软件,例如数据隔离方法的程序代码等。此外,所述存储器41还可以用于暂时地存储已经输出或者将要输出的各类数据。
所述处理器42在一些实施例中可以是中央处理器(Central Processing Unit,CPU)、控制器、微控制器、微处理器、或其他数据处理芯片。该处理器42通常用于控制所述计算机设备4的总体操作。本实施例中,所述处理器42用于运行所述存储器41中存储的程序代码或者处理数据,例如运行所述数据隔离方法的程序代码。
所述网络接口43可包括无线网络接口或有线网络接口,该网络接口43通常用于在所述计算机设备4与其他电子设备之间建立通信连接。
本申请还提供了另一种实施方式,即提供一种计算机可读存储介质,所述计算机可读存储介质存储有数据隔离程序,所述数据隔离程序可被至少一个处理器执行,以使所述至少一个处理器执行如上述的数据隔离方法的步骤。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本申请各个实施例所述的方法。
显然,以上所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例,附图中给出了本申请的较佳实施例,但并不限制本申请的专利范围。本申请可以以许多不同的形式来实现,相反地,提供这些实施例的目的是使对本申请的公开内容的理解更加透彻全面。尽管参照前述实施例对本申请进行了详细的说明,对于本领域的技术人员来而言,其依然可以对前述各具体实施方式所记载的技术方案进行修改,或者对其中部分技术特征进行等效替换。凡是利用本申请说明书及附图内容所做的等效结构,直接或间接运用在其他相关的技术领域,均同理在本申请专利保护范围之内。
Claims (10)
1.一种数据隔离方法,其特征在于,包括下述步骤:
根据用户群将数据库划分成多个数据分库,一个数据分库对应一个用户群;
对所述数据分库进行分配数据源,其中一个所述数据源对应一个所述数据分库;
建立数据源管理器,所述数据源管理器映射所述用户群和数据源;
当接收到用户访问请求时,所述数据源管理器根据所述请求中的用户信息分配一个所述用户所在用户群对应的所述数据源以使所述用户连接到对应的数据分库进行数据访问。
2.根据权利要求1所述的数据隔离方法,其特征在于,所述建立数据源管理器,所述数据源管理器映射所述用户群和数据源,包括:
获取所述数据分库对应的所有数据源,以及所述数据分库对应的用户群中的所有用户信息;
基于所述用户群、用户信息和所述数据源,建立映射表。
3.根据权利要求2所述的数据隔离方法,其特征在于,所述访问请求包括请求用户的用户账号和登录密码,则所述当接收到用户访问请求时,所述数据源管理器根据所述请求中的用户信息分配一个所述用户所在用户群对应的所述数据源以使所述用户连接到对应的数据分库进行数据访问具体包括以下步骤:
遍历所述映射表,验证所述请求用户的用户账号和登录密码是否存在所述映射表中;
若存在,则验证通过,查找所述请求用户所在的用户群,根据所述用户群与所述数据源的映射关系分配一个所述数据源以连接对应的数据分库进行数据访问。
4.根据权利要求3所述的数据隔离方法,其特征在于,所述用户信息包括所述用户群中所有用户的用户账号和用户密码,所述遍历所述映射表,验证所述请求用户的用户账号和用户密码是否存在所述映射表中;若存在,则验证通过,查找所述请求用户所在的用户群,根据所述用户群与所述数据源的映射关系分配一个所述数据源以连接对应的数据分库进行数据访问的步骤具体包括:
遍历所述映射表,验证所述请求用户的账户是否与所述映射表中的任意用户账号匹配;
若匹配,则继续验证所述请求用户的登录密码是否与所述用户账号对应的用户密码匹配;
若匹配,则验证通过,查找所述请求用户所在的用户群以分配一条对应的所述数据源与所述数据分库建立连接,创建会话进行数据访问。
5.根据权利要求4所述的数据隔离方法,其特征在于,当所述请求用户与所述数据库建立连接,创建会话时,对所述数据源设置标识标签;
所述当接收到用户访问请求时,所述数据源管理器根据所述请求中的用户信息分配一个所述用户所在用户群对应的所述数据源以使所述用户连接到对应的数据分库进行数据访问的步骤包括:
当接收到用户访问请求时,所述数据源管理器判断所述访问请求是否携有标识标签;
若有,则提取访问请求的标识标签,通过所述标识标签获取所述数据源以连接对应的数据分库进行数据访问。
6.根据权利要求1所述的数据隔离方法,其特征在于,在根据用户群将数据库划分成多个数据分库时,根据所述用户群的用户量分配或者扩展所述数据库的存储空间。
7.根据权利要求6所述的数据隔离方法,其特征在于,所述根据所述用户群的用户量分配或者扩展所述数据库的存储空间的步骤具体包括:
判断所述数据分库的存储空间是否满足当前用户群的用户量;
若不满足,则对所述数据分库的存储空间进行扩展;
当所述数据分库扩展至极限存储空间仍然不足时,以所述数据分库为主库,增设另一个数据分库为从库,且两个数据分库关联以使数据同步。
8.一种数据隔离装置,其特征在于,包括:
数据库划分模块,用于根据用户群将数据库划分成多个数据分库,一个数据分库对应一个用户群;
数据源分配模块,用于对所述数据分库进行分配数据源,其中一个所述数据源对应一个所述数据分库;
数据源管理模块,用于建立数据源管理器,所述数据源管理器映射所述用户群和数据源;
分配模块,用于当接收到用户访问请求时,所述数据源管理器根据所述请求中的用户信息分配一个所述用户所在用户群对应的所述数据源以使所述用户连接到对应的数据分库进行数据访问。
9.一种计算机设备,其特征在于,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器执行所述计算机程序时实现如权利要求1至7中任一项所述的数据隔离方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至7中任一项所述的数据隔离方法的步骤。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910882021.3A CN110851853A (zh) | 2019-09-18 | 2019-09-18 | 一种数据隔离方法、装置、计算机设备及存储介质 |
PCT/CN2019/117739 WO2021051569A1 (zh) | 2019-09-18 | 2019-11-13 | 一种数据隔离方法、装置、计算机设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910882021.3A CN110851853A (zh) | 2019-09-18 | 2019-09-18 | 一种数据隔离方法、装置、计算机设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110851853A true CN110851853A (zh) | 2020-02-28 |
Family
ID=69594940
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910882021.3A Pending CN110851853A (zh) | 2019-09-18 | 2019-09-18 | 一种数据隔离方法、装置、计算机设备及存储介质 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN110851853A (zh) |
WO (1) | WO2021051569A1 (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111597156A (zh) * | 2020-05-13 | 2020-08-28 | 中国民航信息网络股份有限公司 | 民航数据处理方法、装置、电子设备及存储介质 |
WO2023015482A1 (en) * | 2021-08-11 | 2023-02-16 | Nokia Shanghai Bell Co., Ltd. | Management data isolation |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102426602A (zh) * | 2010-10-28 | 2012-04-25 | 微软公司 | 范围化数据库连接 |
CN102999607A (zh) * | 2012-11-21 | 2013-03-27 | 深圳市捷顺科技实业股份有限公司 | 一种数据存储方法、数据访问方法以及相关装置 |
CN107203575A (zh) * | 2016-03-18 | 2017-09-26 | 北京京东尚科信息技术有限公司 | 一种用于隔离多租户数据的系统、设备和方法 |
CN109117659A (zh) * | 2018-08-29 | 2019-01-01 | 广东恒电信息科技股份有限公司 | 一种多租户模式下的大数据安全隔离管理系统 |
CN109388631A (zh) * | 2018-10-11 | 2019-02-26 | 山东浪潮通软信息科技有限公司 | 一种多租户的数据库分库实现方法 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103488644B (zh) * | 2012-06-12 | 2017-12-15 | 联想(北京)有限公司 | 进行数据存储的方法及数据库系统 |
CN105045897B (zh) * | 2015-07-31 | 2019-01-25 | 华为软件技术有限公司 | 支持数据库扩容的业务处理系统及方法 |
CN106302640A (zh) * | 2016-07-27 | 2017-01-04 | 乐视控股(北京)有限公司 | 数据请求处理方法及装置 |
CN107682397B (zh) * | 2017-08-28 | 2019-02-26 | 平安科技(深圳)有限公司 | 客户资源获取方法、装置、终端设备及存储介质 |
CN108520004B (zh) * | 2018-03-12 | 2021-11-19 | 舟谱数据技术南京有限公司 | 基于方法参数切面多租户数据源切换系统 |
CN109669946B (zh) * | 2018-12-14 | 2021-11-16 | 中南设计集团(武汉)工程技术研究院有限公司 | 一种基于海量用户的复杂权限体系数据隔离系统及方法 |
-
2019
- 2019-09-18 CN CN201910882021.3A patent/CN110851853A/zh active Pending
- 2019-11-13 WO PCT/CN2019/117739 patent/WO2021051569A1/zh active Application Filing
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102426602A (zh) * | 2010-10-28 | 2012-04-25 | 微软公司 | 范围化数据库连接 |
CN102999607A (zh) * | 2012-11-21 | 2013-03-27 | 深圳市捷顺科技实业股份有限公司 | 一种数据存储方法、数据访问方法以及相关装置 |
CN107203575A (zh) * | 2016-03-18 | 2017-09-26 | 北京京东尚科信息技术有限公司 | 一种用于隔离多租户数据的系统、设备和方法 |
CN109117659A (zh) * | 2018-08-29 | 2019-01-01 | 广东恒电信息科技股份有限公司 | 一种多租户模式下的大数据安全隔离管理系统 |
CN109388631A (zh) * | 2018-10-11 | 2019-02-26 | 山东浪潮通软信息科技有限公司 | 一种多租户的数据库分库实现方法 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111597156A (zh) * | 2020-05-13 | 2020-08-28 | 中国民航信息网络股份有限公司 | 民航数据处理方法、装置、电子设备及存储介质 |
CN111597156B (zh) * | 2020-05-13 | 2023-05-23 | 中国民航信息网络股份有限公司 | 民航数据处理方法、装置、电子设备及存储介质 |
WO2023015482A1 (en) * | 2021-08-11 | 2023-02-16 | Nokia Shanghai Bell Co., Ltd. | Management data isolation |
Also Published As
Publication number | Publication date |
---|---|
WO2021051569A1 (zh) | 2021-03-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111698228B (zh) | 系统访问权限授予方法、装置、服务器及存储介质 | |
US10757106B2 (en) | Resource access control method and device | |
US9311471B2 (en) | Sharing USB key by multiple virtual machines located at different hosts | |
CN108769230B (zh) | 交易数据存储方法、装置、服务器及存储介质 | |
WO2022116425A1 (zh) | 数据血缘关系解析方法、系统、计算机设备及存储介质 | |
US20180033075A1 (en) | Automatic recharge system and method, and server | |
CN109347839B (zh) | 集中式密码管理方法、装置、电子设备及计算机存储介质 | |
CN111274268A (zh) | 物联网数据传输方法、装置、介质及电子设备 | |
CN111797096A (zh) | 基于ElasticSearch的数据索引方法、装置、计算机设备及存储介质 | |
CN112988674A (zh) | 大数据文件的处理方法、装置、计算机设备及存储介质 | |
CN109814896A (zh) | 服务器升级方法、装置、计算机系统及可读存储系统 | |
CN110851853A (zh) | 一种数据隔离方法、装置、计算机设备及存储介质 | |
US9160705B2 (en) | Identifier management | |
CN111291045A (zh) | 服务隔离数据传输方法、装置、计算机设备及存储介质 | |
CN112256760B (zh) | 一种数据预测方法、装置、计算机设备及存储介质 | |
CN108241732B (zh) | 电子装置、信息处理的方法及存储介质 | |
CN113420050B (zh) | 数据查询管理方法、装置、计算机设备及可读存储介质 | |
CN114266072A (zh) | 一种权限分配控制方法、装置、电子设备及存储介质 | |
CN113626509A (zh) | 数据接入方法、装置、电子设备及可读存储介质 | |
CN112632192A (zh) | 节点维护方法、装置、计算机设备及介质 | |
CN113691575A (zh) | 通信方法、装置及系统 | |
CN114860390B (zh) | 容器数据管理方法、装置、程序产品、介质及电子设备 | |
CN114513526A (zh) | 一种跨链访问数据的方法、系统以及第一区块链 | |
CN115242527A (zh) | Kubernetes集群管理面板的登录方法和装置 | |
CN115242528A (zh) | Kubernetes集群管理面板的登录方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |