数据库操作方法和装置制造方法及图纸

技术编号:20160439 阅读:33 留言:0更新日期:2019-01-19 00:13
本申请实施例公开了数据库操作方法和装置,应用于分布式数据库系统中的数据库服务器。该方法的一具体实施方式包括:响应于确定用户标识所指示的用户具有操作数据库操作语句所针对的数据的权限,利用用户私钥对数据库操作语句进行数字签名得到签名信息,根据数据库操作语句、签名信息和用户标识生成事务信息,将所生成的事务信息存储到本地事务信息缓冲池中;响应于利用预设共识算法竞争到事务信息块记录权限,在本地事务信息缓冲池中选取事务信息生成区块,解析并执行所选取的各个事务信息中的数据库操作语句,将所生成的区块串接到本地区块链,将所生成的区块广播给其他数据库服务器。该实施方式实现了分布式数据库系统不可篡改以及可追溯。

【技术实现步骤摘要】
数据库操作方法和装置
本申请实施例涉及计算机
,具体涉及数据库操作方法和装置。
技术介绍
分布式数据库系统(DDBS,DistributedDatabaseSystem)包含分布式数据库管理系统(DDBMS,DistributedDatabaseManagementSystem)和分布式数据库(DDB,DistributedDatabase)。在分布式数据库系统中,一个应用程序可以对数据库进行透明操作,数据库中的数据分别在不同的局部数据库中存储、由不同的DBMS进行管理、在不同的机器上运行、由不同的操作系统支持、被不同的通信网络连接在一起。一个分布式数据库在逻辑上是一个统一的整体,在物理上则是分别存储在不同的物理节点上。一个应用程序通过网络的连接可以访问分布在不同地理位置的数据库。它的分布性表现在数据库中的数据不是存储在同一场地。传统的分布式数据库系统主要应用在中心化的机构或者公司,数据往往容易被篡改且无法有效约束,从而无法满足业务审计的需求。而且传统的分布式数据库系统中用户的所有操作日志会被定期归档并清理,且现有的分布式数据库系统权限一般集中在中心化公司或者机构的系统管理员,也就意味着数据库系统中的信息(包括用户操作日志等)无法做到对普通用户的公开透明。
技术实现思路
本申请实施例提出了数据库操作方法和装置。第一方面,本申请实施例提供了一种数据库操作方法,应用于分布式数据库系统中的数据库服务器,该方法包括:响应于接收到用户使用终端设备发送的数据库操作请求,数据库操作请求包括数据库操作语句、用户标识和用户私钥,确定用户标识所指示的用户是否具有操作数据库操作语句所针对的数据的权限;响应于确定有权限,利用用户私钥对数据库操作语句进行数字签名得到签名信息,以及根据数据库操作语句、签名信息和用户标识生成事务信息,将所生成的事务信息存储到本地事务信息缓冲池中;响应于利用预设共识算法竞争到事务信息块记录权限,在本地事务信息缓冲池中选取事务信息生成区块,解析并执行所选取的各个事务信息中的数据库操作语句,将所生成的区块串接到本地区块链,以及将所生成的区块广播给分布式数据库系统中除数据库服务器之外的其他数据库服务器。在一些实施例中,该方法还包括:响应于接收到分布式数据库系统中其他数据库服务器发送的区块,对所收到的区块中记录的每个事务信息,在分布式数据库系统中查询该事务信息中的用户标识所指示的用户的用户公钥,利用所查到的公钥和该事务信息中的签名信息对该事务信息中的数据库操作语句进行签名验证;响应于对所收到的区块中记录的每个事务信息中的数据库操作语句进行签名验证均通过,将所收到的区块串接到本地区块链。在一些实施例中,预设共识算法为拜占庭容错共识算法。在一些实施例中,分布式数据库系统为键值型分布式数据库系统。第二方面,本申请实施例提供了一种数据库操作装置,应用于分布式数据库系统中的数据库服务器,该装置包括:权限确定单元,被配置成响应于接收到用户使用终端设备发送的数据库操作请求,数据库操作请求包括数据库操作语句、用户标识和用户私钥,确定用户标识所指示的用户是否具有操作数据库操作语句所针对的数据的权限;签名及缓存单元,被配置成响应于确定有权限,利用用户私钥对数据库操作语句进行数字签名得到签名信息,以及根据数据库操作语句、签名信息和用户标识生成事务信息,将所生成的事务信息存储到本地事务信息缓冲池中;区块生成及广播单元,被配置成响应于利用预设共识算法竞争到事务信息块记录权限,在本地事务信息缓冲池中选取事务信息生成区块,解析并执行所选取的各个事务信息中的数据库操作语句,将所生成的区块串接到本地区块链,以及将所生成的区块广播给分布式数据库系统中除数据库服务器之外的其他数据库服务器。在一些实施例中,该装置还包括:区块验证单元,被配置成响应于接收到分布式数据库系统中其他数据库服务器发送的区块,对所收到的区块中记录的每个事务信息,在分布式数据库系统中查询该事务信息中的用户标识所指示的用户的用户公钥,利用所查到的公钥和该事务信息中的签名信息对该事务信息中的数据库操作语句进行签名验证;区块串接单元,被配置成响应于对所收到的区块中记录的每个事务信息中的数据库操作语句进行签名验证均通过,将所收到的区块串接到本地区块链。在一些实施例中,预设共识算法为拜占庭容错共识算法。在一些实施例中,分布式数据库系统为键值型分布式数据库系统。第三方面,本申请实施例提供了一种数据库服务器,包括:一个或多个处理器;存储装置,其上存储有一个或多个程序,当上述一个或多个程序被上述一个或多个处理器执行时,使得上述一个或多个处理器实现如第一方面中任一实现方式描述的方法。第四方面,本申请实施例提供了一种计算机可读存储介质,其上存储有计算机程序,其中,该计算机程序被一个或多个处理器执行时实现如第一方面中任一实现方式描述的方法。第五方面,本申请实施例提供了一种分布式数据库系统,包括至少一个如第三方面描述的数据库服务器。本申请实施例提供的数据库操作方法和装置,通过对数据库操作请求进行权限校验,并在权限校验通过的情况下根据数据库操作请求生成事务信息,并将事务信息存储在本地事务信息缓冲池中,以及在竞争到事务信息块记录权限的情况下,在本地事务信息缓冲池中选取事务信息生成区块,解析并执行所选取的各个事务信息中的数据库操作语句,将所生成的区块串接到本地区块链,以及将所生成的区块广播给分布式数据库系统中除数据库服务器之外的其他数据库服务器,从而有效利用了区块链技术,实现了分布式数据库系统的不可篡改以及数据可追溯,使得现有的分布式数据库既具备审计以及公正透明的特性,有兼容传统数据库SQL(结构化查询语言,StructuredQueryLanguage)访问的特性。附图说明通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本申请的其它特征、目的和优点将会变得更明显:图1是本申请的一个实施例可以应用于其中的示例性系统架构图;图2是根据本申请的数据库操作方法的一个实施例的流程图;图3是根据本申请的数据库操作方法的又一个实施例的流程图;图4是根据本申请的数据库操作装置的一个实施例的结构示意图;图5是根据本申请的分布式数据库系统的一个实施例的结构示意图;图6是适于用来实现本申请实施例的数据库服务器的计算机系统的结构示意图。具体实施方式下面结合附图和实施例对本申请作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释相关专利技术,而非对该专利技术的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与有关专利技术相关的部分。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。图1示出了可以应用本申请的数据库操作方法或数据库操作装置的实施例的示例性系统架构100。如图1所示,系统架构100可以包括终端设备101、102、103,网络104和数据库服务器105、106、107。网络104用以在终端设备101、102、103和数据库服务器105、106、107之间提供通信链路的介质。网络104可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。用户可以使用终端设备101、102、103通过网络104与数据库服务器本文档来自技高网...

【技术保护点】
1.一种数据库操作方法,应用于分布式数据库系统中的数据库服务器,包括:响应于接收到用户使用终端设备发送的数据库操作请求,所述数据库操作请求包括数据库操作语句、用户标识和用户私钥,确定所述用户标识所指示的用户是否具有操作所述数据库操作语句所针对的数据的权限;响应于确定有权限,利用所述用户私钥对所述数据库操作语句进行数字签名得到签名信息,以及根据所述数据库操作语句、所述签名信息和所述用户标识生成事务信息,将所生成的事务信息存储到本地事务信息缓冲池中;响应于利用预设共识算法竞争到事务信息块记录权限,在所述本地事务信息缓冲池中选取事务信息生成区块,解析并执行所选取的各个事务信息中的数据库操作语句,将所生成的区块串接到本地区块链,以及将所生成的区块广播给所述分布式数据库系统中除所述数据库服务器之外的其他数据库服务器。

【技术特征摘要】
1.一种数据库操作方法,应用于分布式数据库系统中的数据库服务器,包括:响应于接收到用户使用终端设备发送的数据库操作请求,所述数据库操作请求包括数据库操作语句、用户标识和用户私钥,确定所述用户标识所指示的用户是否具有操作所述数据库操作语句所针对的数据的权限;响应于确定有权限,利用所述用户私钥对所述数据库操作语句进行数字签名得到签名信息,以及根据所述数据库操作语句、所述签名信息和所述用户标识生成事务信息,将所生成的事务信息存储到本地事务信息缓冲池中;响应于利用预设共识算法竞争到事务信息块记录权限,在所述本地事务信息缓冲池中选取事务信息生成区块,解析并执行所选取的各个事务信息中的数据库操作语句,将所生成的区块串接到本地区块链,以及将所生成的区块广播给所述分布式数据库系统中除所述数据库服务器之外的其他数据库服务器。2.根据权利要求1所述的方法,其中,所述方法还包括:响应于接收到所述分布式数据库系统中其他数据库服务器发送的区块,对所收到的区块中记录的每个事务信息,在所述分布式数据库系统中查询该事务信息中的用户标识所指示的用户的用户公钥,利用所查到的公钥和该事务信息中的签名信息对该事务信息中的数据库操作语句进行签名验证;响应于对所收到的区块中记录的每个事务信息中的数据库操作语句进行签名验证均通过,将所收到的区块串接到本地区块链。3.根据权利要求2所述的方法,其中,所述预设共识算法为拜占庭容错共识算法。4.根据权利要求3所述的方法,其中,所述分布式数据库系统为键值型分布式数据库系统。5.一种数据库操作装置,应用于分布式数据库系统中的数据库服务器,包括:权限确定单元,被配置成响应于接收到用户使用终端设备发送的数据库操作请求,所述数据库操作请求包括数据库操作语句、用户标识和用户私钥,确定所述用户标识所指示的用户是否具有操作所述数据库...

【专利技术属性】
技术研发人员:宋浩赖宝华
申请(专利权)人:北京百度网讯科技有限公司
类型:发明
国别省市:北京,11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1