基于区块链的数据库系统中数据库表的审计方法与流程

文档序号:18191475发布日期:2019-07-17 05:36阅读:701来源:国知局
本发明涉及基于区块链的日志式数据库的审计技术,针对数据库表中一个或者多个条目中的一个或多个字段进行追根溯源。
背景技术
::基于数据库的区块链系统,对数据的操作都记录在区块链系统中,而数据库中只展示了数据的最新状态。在需要针对数据库表中的某一条目的特殊字段进行溯源检查时,单纯针对区块链进行文本式的sql语句的检测或者对数据库进行当前状态核查,都不能完全满足需求。针对区块链计录的文本内容即sql语句进行解析,不能准确得出这一sql语句所影响的条目及字段,极大地增加了语句分析的难度;针对数据库的当前状态进行审核里,因为只有一个状态值,而没有一个过程值,所以无法追查历史操作,虽然某些类型的数据库本身提供了这个功能,但是基于数据库的区块链系统并未指定特定数据库,这种依赖数据库本身功能进行审计的方法,在很大程度上依赖了数据库本身的特性,降低系统选择数据库的灵活性。单纯采用sql文本解析的方式或者单纯采用数据库自身溯源的方式都不切实际,不能满足用户在任何时候,不加任何限制的情况下对数据本身进行追根溯源的需求。技术实现要素:针对
背景技术
:中的问题,本发明提出了将区块链上的操作日志与本地数据库相结合进行某一特定条目指定字段的审计方法。本发明关于并用区块链与数据库进行审计的方法包括:s1,在本地数据库新建一个数据库中具有唯一名字的新的临时数据库表;s2,将需要审计的特定条目的特定字段的审计需求翻译成sql查询语句;s3,从区块链网络中按顺序读取对原数据库表的一个操作;s4,修改s3读到的sql语句中的表名,在本地数据库中执行修改后的sql语句;s5,用s2得到的查询语句对本地数据库进行查询;s6,将s5得到的查询结果用统一的json数据结构进行保存;s6,将s6保存结果与现有的查询结果进行比较(首次查询结果为空),二者不相同时视为针对这一字段的做过有效改动;s7,s6检测出指定字段发生了效改动的情况下,将s3读取的对数据库表的操作详情写入文本文件进行记录;s8,重复s3-s7的步骤直到对此数据库的操作结束。附图说明图1为本发明的系统的一个结构示意图;图2为本发明的方法的一个实施方式的流程图。具体实施方式下面参照附图描述本发明的实施方式,其中相同的部件用相同的附图标记表示。在基于数据库的区块链系统中,对数据库的操作基于区块链共识,共识通过后,操作会被记录在区块链网络的区块里,如果节点还配置了数据库,则会操作操作数据库表得到正确的数据表状态结果。有数据库表的地方就会有针对表内数据进行追根溯源的需求,需要知道表中某一条目指定字段在何时被何人修改。本发明要实现的技术效果是,结合已经记录了数据库操作日志的区块链及本地任何类型的数据库进行数据库表数据的审计。图1显示了区块链与数据库结合的一种拓扑结构,对数据库的操作会以交易的形式记录在区块链系统,同时会去改变本地数据库中的状态。如图2所示,本发明的方法包括:步骤s1,在本地数据库新建一个数据库中具有唯一名字的新的数据库表,本表与数据库中的其它表不冲突,专门用来针对某一次审计需求建立的临时表,用来重新执行一个数据库表的所有操作,在完成审计工作后,会删掉这个临时的数据库表。步骤s2,将需要审计的条目及指定审计字段,即审计需求,用数据库表的select语句来表示,例如,审计id为2的条目的salary字段,表示的sql语句为:selectsalaryfromtablenamewhereid=2,本语句将作为在执行完每一次针对数据库表的操作后的不变的查询语句。步骤s3,在区块链网络中,从创建表的操作开始,读取针对待审计表的一条操作,对数据库表的第一条操作永远为创建表操作。步骤s4,在s1新建的临时数据库表中执行从s3中获得的针对数据库表的操作(改变数据库表名),得到一个新的数据库表状态。步骤s5,用s2中得到的查询语句对基于s4操作完成后得到的数据库表状态进行查询,得到一个查询结果。步骤s6,将s5得到的查询结果与上一次的查询结果进行比较,如果两次的查询结果发生的变化,则代表最新的s5的数据库操作对需要审计条目的审计字段有影响,因为将本次数据库操作写入文本文件进行记录,作为审计结果中一部分。比较当前读到的数据库表的操作是否在最新的区块链的区块上,如果是则表明对表的操作已经读完,如果不是,则返回s3继续读取存储在区块链中的数据库操作。步骤s7,针对数据库表的审计工作已经结束,删除s1中创建的临时文件以避免垃圾文件的产生。以上所述的实施步骤,基于的前提条件是将数据库的操作以交易的形式写入区块链网络,然后从区块链里读取针对数据库表的操作,再在新的数据库表时重新执行表的操作语句,从而进行特定条目指定字段的审计方法都应包含在本发明的保护范围内。技术特征:技术总结基于区块链的数据库系统中数据库表的审计方法,本发明提出一种针对数据库表特定条目指定字段的追根溯源的方法,所述方法包括:S1,为本次审计在本地数据库新建临时数据库表;S2,将审计需求翻译成数据库的sql查询语句;S3,从区块链中顺次读取对需要审计的数据库表的操作;S4,在本地临时数据库中执行读到的sql语句;S5,用S2得到的查询语句查询临时数据库表;S6,如果查询结果发生变化,将对应的数据库表操作写入文件进行记录;循环执行S3—S6,直到所有针对需要审计数据库表的操作已经读完。S7,结束审计,删除S1中创建的临时数据库表。本发明通过读取在区块链上记录的不可更改的数据库表操作,在本地重放整个数据库表的操作过程,来判断指定条目特定字段是否被影响及改变,以达到审计的目的。技术研发人员:吴飞鹏;卢小明;陈姝受保护的技术使用者:北京众享比特科技有限公司技术研发日:2017.11.28技术公布日:2019.07.16
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1