掌桥专利:专业的专利平台
掌桥专利
首页

数据库安全网关系统、数据处理方法、电子设备

文献发布时间:2023-06-19 10:32:14


数据库安全网关系统、数据处理方法、电子设备

技术领域

本发明涉及数据库技术领域,特别涉及一种数据库安全网关系统、数据处理方法以及电子设备。

背景技术

目前,对数据进行加密主要包括三种方式:应用系统中加密、前置数据库加密机加密、服务器端加密(即DBMS(数据库管理系统,Database Management System)内核层加密)。其中,在DBMS内核层实现加密需要对数据库管理系统本身进行操作。这种加密是指数据在物理存取之前完成加解密工作。这种加密方式的优点是加密功能强,并且加密功能几乎不会影响DBMS的功能,可以实现加密功能与数据库管理系统之间的无缝耦合。

然而,现有的DBMS内核层加密仅支持在操作系统层面、文件系统层面进行控制,无法做到针对特定权限用户进行控制。并且,加密运算在服务器端进行,不仅加重了服务器的负载,而且DBMS和加密器之间的接口需要DBMS开发商的支持。

发明内容

本发明实施方式主要解决的技术问题是提供一种数据库安全网关系统、数据处理方法以及电子设备,以解决相关技术不能针对特定权限用户进行控制的问题,以及服务器负载重、操作繁琐的问题。

为解决上述技术问题,本发明实施方式采用的一个技术方案是:提供一种数据库安全网关系统,包括:数据库加密网关,以及与所述数据库加密网关通信连接的代理服务模块;

所述数据库加密网关存储有密钥信息,所述数据库加密网关用于在接收到数据访问请求时,对当前操作数据的用户进行权限角色认证,并根据所述密钥信息响应所述权限角色认证的结果;

所述代理服务模块用于维护所述密钥信息。

可选地,所述密钥信息包括维护透明数据加密机制的主密钥,以及表、列的加密密钥。

可选地,所述数据库加密网关具体用于:

在接收到数据访问请求时,判断当前发起请求的用户对数据库实例的访问权限,对数据表的访问权限,以及对数据列的访问权限;

当所述请求是对应数据库实例时,则只判断所述用户对所述数据库实例是否有访问权限;

当所述请求是对应数据表时,则先找到包含所述数据表的数据库实例,先判断所述用户对所述数据库实例的权限,再判断所述用户对所述数据表的访问权限;

当所述请求是对应的数据列时,则先找到所述数据列所在的数据表,再找到所述数据表所在的数据库实例,然后先判断所述用户对所述数据库实例的权限,再判断所述用户对所述数据表的权限,最后判断所述用户对所述数据列的权限。

可选地,所述代理服务模块具体用于:

上传所述密钥信息至所述数据库加密网关,并删除数据库管理系统中的密钥信息;

在所述数据库管理系统需要使用所述密钥信息时,从所述数据库加密网关请求所述密钥信息并加载至所述数据库管理系统的内存。

可选地,所述代理服务模块部署于所述数据库管理系统。

可选地,所述代理服务模块还用于:在所述数据库加密网关接收到数据写入请求时,从所述数据库加密网关获取密钥信息,以使所述数据库管理系统根据所述密钥信息对所述数据写入请求对应的数据进行加密操作。

为解决上述技术问题,本发明实施方式采用的另一个技术方案是:提供一种数据处理方法,所述方法包括:

接收数据访问请求;

根据所述数据访问请求,对当前操作数据的用户进行权限角色认证,并根据密钥信息响应所述权限角色认证的结果。

可选地,所述对当前操作数据的用户进行权限角色认证,并根据密钥信息响应所述权限角色认证的结果,包括:

判断当前操作数据的用户对数据库实例的访问权限,对数据表的访问权限,以及对数据列的访问权限;

当所述请求是对应数据库实例时,则只判断所述用户对所述数据库实例是否有访问权限;

当所述请求是对应数据表时,则先找到包含所述数据表的数据库实例,先判断所述用户对所述数据库实例的权限,再判断所述用户对所述数据表的访问权限;

当所述请求是对应的数据列时,则先找到所述数据列所在的数据表,再找到所述数据表所在的数据库实例,然后先判断所述用户对所述数据库实例的权限,再判断所述用户对所述数据表的权限,最后判断所述用户对所述数据列的权限。

可选地,所述方法还包括:

在接收到数据写入请求时,获取密钥信息,以使所述数据库管理系统根据所述密钥信息对所述数据写入请求对应的数据进行加密操作。

为解决上述技术问题,本发明实施方式采用的又一个技术方案是:提供一种电子设备,包括:如上所述的数据库安全网关系统,以及数据库管理系统;

所述数据库安全网关系统用于存储密钥信息,并根据所述密钥信息执行数据的加密操作和解密操作;

所述数据库管理系统与所述数据库安全网关系统通信连接,其用于管理所述加密操作和所述解密操作的结果。

区别于相关技术的情况,本发明实施方式提供了一种数据库安全网关系统、数据处理方法和电子设备,其中,该数据库安全网关系统包括数据库加密网关,以及与所述数据库加密网关通信连接的代理服务模块,所述数据库加密网关存储有密钥信息,所述数据库加密网关用于在接收到数据访问请求时,对当前操作数据的用户进行权限角色认证,并根据所述密钥信息响应所述权限角色认证的结果。所述代理服务模块用于维护所述密钥信息。本实施例提供的数据库安全网关系统、数据处理方法和电子设备,能够在无需改造现有应用系统的情况下,做到针对特定权限用户进行控制,同时将加解密处理服务独立运行,在保持数据库管理系统运行效率的同时,对数据资产进行了安全有效的保护。

附图说明

一个或多个实施例通过与之对应的附图进行示例性说明,这些示例性说明并不构成对实施例的限定,附图中具有相同参考数字标号的元件表示为类似的元件,除非有特别申明,附图中的图不构成比例限制。

图1是本发明实施例提供的一种电子设备的结构框图;

图2是本发明实施例提供的所述电子设备的结构示意图;

图3是本发明实施例提供的一种数据库安全网关系统的结构示意图;

图4是本发明实施例提供的一种数据处理方法的流程图。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。

本发明实施例提供了一种电子设备100,该电子设备100可以是服务器或服务器集群,如图1所示,该电子设备100包括:数据库安全网关系统10、数据库管理系统20以及应用系统30。所述数据库安全网关系统10分别与所述数据库管理系统20和所述应用系统30通信连接。

在本实施例中,当用户需要访问数据库管理系统20时,通过所述应用系统30发起用户数据访问请求,所述数据库安全网关系统10接收所述用户数据访问请求,并判断用户角色是否有数据读取权限,如果所述用户角色权限符合预设要求,所述数据库安全网关系统10将所述用户数据访问请求发送至所述数据库管理系统20,所述数据库管理系统20从所述数据库安全网关系统10获得对应的密钥信息,执行数据解密操作,以获得解密后的明文数据,并将所述明文数据反馈所述用户数据访问请求对应的用户。此外,当用户需要向所述数据库管理系统20写入数据时,用户通过所述应用系统30发起用户数据写入请求,所述数据库安全网关系统10接收所述用户数据写入请求,并判断用户角色是否有数据写入权限,如果所述用户角色权限符合预设要求,所述数据库安全网关系统10将所述用户数据写入请求发送至数据库管理系统20,所述数据库管理系统系统20从所述数据库安全网关系统10获得对应的密钥信息,执行数据加密操作,以获得加密后的密文数据,并将加密后的密文数据保存到数据库磁盘文件中,保存成功后将通过所述数据库安全网关系统10告知所述发起写入数据请求的用户已经执行成功的结果。

请参阅图2,图2是所述数据库安全网关系统10的结构示意图。在本实施例中,所述数据库安全网关系统10用于对所述应用系统30中的用户角色,给予针对所述数据管理系统20不同的权限,建立起角色与权限的映射关系,所述应用系统30中的系统管理员可以访问数据库安全网关系统10,对所述映射关系进行增加、删除、修改;取出所述数据库管理系统20中保存的加解密密钥信息,并删除原备份信息,将加解密密钥信息和数据信息分离保存,在所述数据库管理系统20对数据进行加解密操作时从所述数据库安全网关系统10中取出。

如图2所示,所述数据库安全网关系统10包括:数据库加密网关11和代理服务模块12,所述数据库加密网关11与所述代理服务模块12通信连接。所述代理服务模块12部署于所述数据库管理系统20。

其中,所述数据库加密网关11可以包括用户角色权限控制模块111和加解密密钥控制模块112。

所述用户角色权限控制模块111用于存储所述应用系统30中所有用户的角色种类,以及所述数据库管理系统20中所有数据库实例、数据表和数据列信息。所述数据库实例、数据表以及数据列分别对应读取和写入两种权限,可以先给所述所有用户角色分配数据库实例的读取或者写入权限,再给所述所有用户角色分配数据库实例中包含的所有数据表的读取或者写入权限,最后给所述所有用户角色分配数据库实例中所有数据表中包含的所有数据列的读取或者写入权限。角色用户必须先拥有数据库实例的读取和写入权限,才能被给予数据库实例中包含的数据表的读取或者写入权限。如果角色用户只拥有数据库实例的读取权限,只能被给予拥有数据库实例中包含的数据表的读取权限。如果角色用户拥有数据库实例中包含的数据表的读取和写入权限,则默认用户也是拥有所述数据库实例的读取和写入权限的,用户可以先访问拥有权限的所述实例,再访问所述实例中的数据表。如果角色用户拥有数据列的读取和写入权限,则默认用户也是拥有所述数据库实例的读取和写入权限,以及所述数据库实例中数据表的读取和写入权限的,用户可以先访问拥有权限的所述实例,再访问所述实例中的数据表,最后访问所述数据列。另外,角色用户的数据读取权限和数据写入权限不是必然同时存在的,比如,只拥有数据表的读取权限的角色用户,不能针对所述数据表执行写操作;只拥有数据表的写入权限的角色用户,不能针对所述数据表执行读操作。所述应用系统30的系统超级管理员可以在所述用户角色权限控制模块111中,对每个用户角色分配所述数据库管理系统20中每个层级数据的读取权限和数据写入权限,及进行添加、删除、修改、查询操作。

其中,所述加解密密钥控制模块112用于存储所述数据库管理系统20的主密钥、数据表密钥和数据列密钥。所述加解密密钥控制模块112还提供开放接口,所述开放接口供所述代理服务模块12进行密钥的存储和读取。对所有的密钥进行分类分层管理,主密钥下一级存储包含的所有数据表密钥信息,数据表密钥下一级存放包含在所述数据表中的所有数据列的密钥信息。接收到数据表密钥请求时,根据存储的所述数据库管理系统20的数据库实例、数据表和数据列的结构信息,先获取主密钥信息,再获取对应的数据表密钥信息,最后将所有获取到的密钥信息进行压缩后返回给所述代理服务模块12;接收到数据列密钥请求时,根据存储的所述数据库管理系统20的数据库实例、数据表和数据列的结构信息,先获取主密钥信息,然后获取数据列所在的数据表的密钥信息,再获取对应的数据列信息,最后将所有获取到的密钥信息返回给所述代理服务模块12。其中,在传输所述密钥信息时可以先对所述密钥信息进行压缩处理,然后传输压缩后的密钥信息。

代理服务模块12部署在所述数据库管理系统20,用于所述数据库管理系统20中主密钥、数据表密钥和数据列密钥的上传和下载。所述数据库管理系统20启动时候,所述代理服务模块12根据所述数据库管理系统20的透明数据加密机制开放的接口,先获取主密钥信息,然后获取主密钥下对应的所有数据表密钥信息,再获取所有数据表对应包含的所有数据列密钥信息,最后将这些密钥信息,以及数据库实例、数据库表和数据列对应的层级结构信息,一起压缩后发送给所述数据库加密网关11中的所述加解密密钥控制模块112中进行保存,保存密钥信息和层级结构信息成功后,所述代理服务模块12根据所述数据库管理系统20的透明数据加密机制开放的接口,将其中所有保存的主密钥信息、数据表密钥信息和数据列密钥信息进行删除操作,只保留所述数据库加密网关11中的一份密钥信息。在所述数据库管理系统20重新启动需要密钥信息或者进行相应的加密操作或者解密操作需要密钥信息时,所述代理服务模块12通过所述加解密密钥控制模块112开放的接口,获取对应层级结构的主密钥信息、数据表密钥信息或者数据列密钥信息并加载到内存中。

在本发明实施例中,所述数据库安全网关系统10,无需改造现有的所述应用系统30,并将所有角色用户拥有的数据权限细化到了数据列级别的细粒度精准控制;将数据库密钥信息和数据库文件分开保存,在不影响数据库管理系统运行效率情况下,对数据资产的安全提供了有效的保护。

所述数据库管理系统20,是一种针对对象数据库,为管理数据库而设计的大型软件管理系统,包含透明数据加密技术,对数据和日志文件进行加密和解密,数据库存储密钥信息。本申请中,所述代理服务模块12部署在所述数据库管理系统20,利用所述数据库管理系统20透明数据加密技术提供的开放接口,将存储在所述数据库管理系统20中的密钥信息取出,存储到所述加解密密钥控制模块112中,并将所述数据库管理系统20中所有的原密钥信息删除。所述数据库管理系统20在重启需要密钥信息或者透明数据加密机制进行加密解密过程需要密钥信息的时候,通过所述部署的代理服务模块12将存储在加解密控制模块112中的所需密钥信息取出使用,并放到内存中。

所述应用系统30,是由标准化的管理模式、知识化的业务模型以及集成化的软件系统构成。包含了用户管理模块,所有的用户都有相应的角色,系统超级管理员能对用户角色进行新增、删除、修改操作,能对每个用户的角色进行新增、删除、修改操作。在本申请中,所述数据库安全网关系统10通过所述应用系统30中用户管理模块开放的接口,获取所有用户角色的列表,系统超级管理员能对每一种角色对应的数据读取权限和数据写入权限进行新增、删除、修改操作。

本发明实施例提供的电子设备100,通过在所述应用系统30和所述数据库管理系统20中加入所述数据库安全网关系统10,对所有用户角色提供细化到数据列程度的数据权限管理,对所有数据资产做到了分类分级的访问控制,将所述数据库管理系统20中的密钥信息转移到所述数据库安全网关系统10中进行保存,使得密钥信息和数据信息分离管理,在不影响数据库服务器运行效率的情况下,对数据资产的安全进行了有效的保护。

请参阅图3,图3是本发明实施例提供的一种数据库安全网关系统的结构示意图。所述数据库安全网关系统10用于对所述应用系统30中的用户角色,给予针对所述数据管理系统20不同的权限,建立起角色与权限的映射关系,所述应用系统30中的系统管理员可以访问数据库安全网关系统10,对所述映射关系进行增加、删除、修改;取出所述数据库管理系统20中保存的加解密密钥信息,并删除原备份信息,将加解密密钥信息和数据信息分离保存,在所述数据库管理系统20对数据进行加解密操作时从所述数据库安全网关系统10中取出。

如图3所示,所述数据库安全网关系统10包括:数据库加密网关11和代理服务模块12,所述数据库加密网关11与所述代理服务模块12通信连接。所述代理服务模块12部署于所述数据库管理系统20。

其中,所述数据库加密网关11可以包括用户角色权限控制模块111和加解密密钥控制模块112。

所述用户角色权限控制模块111用于存储所述应用系统30中所有用户的角色种类,以及所述数据库管理系统20中所有数据库实例、数据表和数据列信息。所述数据库实例、数据表以及数据列分别对应读取和写入两种权限,可以先给所述所有用户角色分配数据库实例的读取或者写入权限,再给所述所有用户角色分配数据库实例中包含的所有数据表的读取或者写入权限,最后给所述所有用户角色分配数据库实例中所有数据表中包含的所有数据列的读取或者写入权限。角色用户必须先拥有数据库实例的读取和写入权限,才能被给予数据库实例中包含的数据表的读取或者写入权限。如果角色用户只拥有数据库实例的读取权限,只能被给予拥有数据库实例中包含的数据表的读取权限。如果角色用户拥有数据库实例中包含的数据表的读取和写入权限,则默认用户也是拥有所述数据库实例的读取和写入权限的,用户可以先访问拥有权限的所述实例,再访问所述实例中的数据表。如果角色用户拥有数据列的读取和写入权限,则默认用户也是拥有所述数据库实例的读取和写入权限,以及所述数据库实例中数据表的读取和写入权限的,用户可以先访问拥有权限的所述实例,再访问所述实例中的数据表,最后访问所述数据列。另外,角色用户的数据读取权限和数据写入权限不是必然同时存在的,比如,只拥有数据表的读取权限的角色用户,不能针对所述数据表执行写操作;只拥有数据表的写入权限的角色用户,不能针对所述数据表执行读操作。所述应用系统30的系统超级管理员可以在所述用户角色权限控制模块111中,对每个用户角色分配所述数据库管理系统20中每个层级数据的读取权限和数据写入权限,及进行添加、删除、修改、查询操作。

其中,所述加解密密钥控制模块112用于存储所述数据库管理系统20的主密钥、数据表密钥和数据列密钥。所述加解密密钥控制模块112还提供开放接口,所述开放接口供所述代理服务模块12进行密钥的存储和读取。对所有的密钥进行分类分层管理,主密钥下一级存储包含的所有数据表密钥信息,数据表密钥下一级存放包含在所述数据表中的所有数据列的密钥信息。接收到数据表密钥请求时,根据存储的所述数据库管理系统20的数据库实例、数据表和数据列的结构信息,先获取主密钥信息,再获取对应的数据表密钥信息,最后将所有获取到的密钥信息进行压缩后返回给所述代理服务模块12;接收到数据列密钥请求时,根据存储的所述数据库管理系统20的数据库实例、数据表和数据列的结构信息,先获取主密钥信息,然后获取数据列所在的数据表的密钥信息,再获取对应的数据列信息,最后将所有获取到的密钥信息返回给所述代理服务模块12。其中,在传输所述密钥信息时可以先对所述密钥信息进行压缩处理,然后传输压缩后的密钥信息。

代理服务模块12部署在所述数据库管理系统20,用于所述数据库管理系统20中主密钥、数据表密钥和数据列密钥的上传和下载。所述数据库管理系统20启动时候,所述代理服务模块12根据所述数据库管理系统20的透明数据加密机制开放的接口,先获取主密钥信息,然后获取主密钥下对应的所有数据表密钥信息,再获取所有数据表对应包含的所有数据列密钥信息,最后将这些密钥信息,以及数据库实例、数据库表和数据列对应的层级结构信息,一起压缩后发送给所述数据库加密网关11中的所述加解密密钥控制模块112中进行保存,保存密钥信息和层级结构信息成功后,所述代理服务模块12根据所述数据库管理系统20的透明数据加密机制开放的接口,将其中所有保存的主密钥信息、数据表密钥信息和数据列密钥信息进行删除操作,只保留所述数据库加密网关11中的一份密钥信息。在所述数据库管理系统20重新启动需要密钥信息或者进行相应的加密操作或者解密操作需要密钥信息时,所述代理服务模块12通过所述加解密密钥控制模块112开放的接口,获取对应层级结构的主密钥信息、数据表密钥信息或者数据列密钥信息并加载到内存中。

在本发明实施例中,所述数据库安全网关系统10,无需改造现有的所述应用系统30,并将所有角色用户拥有的数据权限细化到了数据列级别的细粒度精准控制;将数据库密钥信息和数据库文件分开保存,在不影响数据库管理系统运行效率情况下,对数据资产的安全提供了有效的保护。

请参阅图4,图4是本发明实施例提供的一种数据处理方法的流程图,所述方法可应用于上述实施例中的数据库安全网关系统10。该方法包括:

S101、接收数据访问请求;

所述数据访问请求可以是当用户需要访问数据库管理系统20时,通过所述应用系统30发起用户数据访问请求,所述数据库安全网关系统10接收所述用户数据访问请求。

S102、根据所述数据访问请求,对当前操作数据的用户进行权限角色认证,并根据密钥信息响应所述权限角色认证的结果。

其中,所述对当前操作数据的用户进行权限角色认证,并根据密钥信息响应所述权限角色认证的结果,包括:

判断当前操作数据的用户对数据库实例的访问权限,对数据表的访问权限,以及对数据列的访问权限;

当所述请求是对应数据库实例时,则只判断所述用户对所述数据库实例是否有访问权限;

当所述请求是对应数据表时,则先找到包含所述数据表的数据库实例,先判断所述用户对所述数据库实例的权限,再判断所述用户对所述数据表的访问权限;

当所述请求是对应的数据列时,则先找到所述数据列所在的数据表,再找到所述数据表所在的数据库实例,然后先判断所述用户对所述数据库实例的权限,再判断所述用户对所述数据表的权限,最后判断所述用户对所述数据列的权限。

其中,如果所述用户权限角色符合预设要求,所述数据库安全网关系统10将所述用户数据访问请求发送至所述数据库管理系统20,所述数据库管理系统20从所述数据库安全网关系统10获得对应的密钥信息,执行数据解密操作,以获得解密后的明文数据,并将所述明文数据反馈所述用户数据访问请求对应的用户。

在一些实施例中,所述方法还包括:在接收到数据写入请求时,获取密钥信息,以使所述数据库管理系统根据所述密钥信息对所述数据写入请求对应的数据进行加密操作。

需要说明的是,本发明实施例提供的数据处理方法与上述装置和系统实施例是基于相同的发明构思的,详细地,可参考上述实施例的叙述。

本发明实施例提供了一种数据处理方法,该方法应用于数据库安全网关系统,所述数据库安全网关系统用于接收数据访问请求,根据所述数据访问请求,对当前操作数据的用户进行权限角色认证,并根据密钥信息响应所述权限角色认证的结果。该方法能够在无需改造现有应用系统的情况下,做到针对特定权限用户进行控制,同时将加解密处理服务独立运行,在保持数据库管理系统运行效率的同时,对数据资产进行了安全有效的保护。

最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;在本发明的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,步骤可以以任意顺序实现,并存在如上所述的本发明的不同方面的许多其它变化,为了简明,它们没有在细节中提供;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的范围。

相关技术
  • 数据库安全网关系统、数据处理方法、电子设备
  • 多副本数据库系统、数据处理方法、电子设备以及计算机可读存储介质
技术分类

06120112586895