技术领域
[0001] 本
发明涉及计算机技术领域,尤其涉及一种基于区块链的档案信息安全管理系统和方法。
背景技术
[0002] 随着互联网、
云计算、移动设备的迅猛发展,数据规模急剧增大,产生了大量具有保存价值的
电子文件,进而数字档案系统建设成为档案工作的必然发展趋势。使用电子档案管理系统,可以为档案信息查询提供方便快捷的服务方式和途径,为实现档案信息资源共享奠定
基础,为电子政务和无纸办公的信息接轨创造条件。通过数字化档案,使纸质及其他各种形式的档案原件得到了有效保护,既加强了管理又方便利用。然而,目前市场上的数字档案系统层出不穷、良莠不齐,这些系统在带来高效与方便的同时,也带来了众多安全隐患和对数字档案权威性的挑战,例如档案数据篡改、黑客攻击、备份数据协同恢复能
力等。因此,构建一种面向不同数字档案
数据库系统的安全管理方法与机制已成为一个亟待解决的现实课题。
[0003] 数字档案数据库系统数据通常包括数字化档案数据、用户数据和用户操作数据。数字化档案数据是数字档案数据的核心要素,如轻量的纸质档案数字化副本、原生电子文件、目录数据和元数据以及重量的档案文件的存储路径等;用户数据包括数字档案系统使用者的基本信息和权限管理信息;用户操作数据是对档案系统数据进行著录、
修改、数据报送、统计等操作所形成的数据,这些操作痕迹可以追溯用户对数字档案系统的使用历史。数字档案系统数据是历史的重要凭证,是数字资源积累、使用和管理的重要内容,该数据一旦受损,将会对国家、企业和社会造成无法弥补的损失。
[0004] 数字档案数据库数据备份工作是安全管理档案数据库的基础和前提,目前主流的数据备份技术包括数据快照技术和数据复制技术。数据快照技术是指对
指定数据集合的一个完全可用拷贝,当存储设备发生应用故障或者文件损坏时可以进行及时数据恢复,将数据恢复成快照产生时间点的状态。快照技术具有备份和恢复窗口短、性能损失小、容量利用率高等优点,适合保护人为失误等软故障造成的数据损失,但快照技术无法实现实时数据备份,即快照产生时间点后的数据都将丢失。数据复制技术即数据镜像技术,操作上简单来讲就是通过复制
软件实时地将数据从一个主机(或磁盘)复制到另一个主机(磁盘),生成一个数据副本。但数据复制技术一般需要相关
硬件设备的支持,若设备量大将导致成本偏高。另外,它无法阻止系统失败、数据丢失、损坏和误删除等灾难的发生。如果主站的数据丢失、损坏或被误删除,备份
站点上的数据也将出现连
锁反应。
[0005]
现有技术对不同数字档案数据库系统数据灾备和操作追溯的研究仍面临着诸多困难。首先是各单位采用数据库系统不同导致的困难,表现在不同档案数据库数据存取、提交、备份等方式不同,支持事务性的能力参差不齐,这使得档案数据灾备中心需要同时面向多种不同的数据库,针对特定数据库进行相关的
接口开发工作,导致档案数据灾备中心建设复杂、成本很高;其次是人为困难,例如人为的误改误删、恶意篡改以及数据迁移过程造成的数据丢失等,档案系统操作数据难以进行追溯并恢复;最后是管理困难,同一单位数字档案数据可能分散在不同部
门保管,集中统一管理困难,且各数据灾备中心的模式不同,加大了管理难度。
发明内容
[0006] 本发明的目的在于克服上述现有技术的
缺陷,提供一种基于区块链的档案信息安全管理系统和方法。
[0007] 根据本发明的第一方面,提供一种基于区块链的档案信息安全管理系统。该系统包括统一数据管理工具、本地档案系统数据库、区块链网络,所述统一数据管理工具配置为与所述本地档案系统数据库具有通信连接并适配多种类型的档案数据库,所述区块链网络包括相互间具有通信连接的多个
节点并且所述区块链网络配置为与所述统一数据管理工具进行信息交互,其中:所述统一数据管理工具获取所述本地档案系统数据库的操作日志并将操作日志统一为交易数据发布到所述区块链网络;所述区块链网络对接收到的交易数据进行签名验证和交易数据共识;所述统一数据管理工具根据所述区块链网络反馈的交易结果对所述本地档案系统数据库进行操作。
[0008] 在一个
实施例中,所述交易数据共识包括:
[0009] 选择一个区块提议者,该区块提议者从已验证交易池中提取交易并打包成区块,并将区块提交信息广播至所述区块链网络的所有验证节点,若交易无效或广播超时,则进入下一轮区块共识,若交易有效则进入预投票阶段;
[0010] 所述验证节点收到所述区块提议者广播的区块信息之后进入预投票阶段,当所述验证节点还被锁在上一轮提交中的情况下,则给该上一轮提交的区块投票,否则给当前提交的区块投票;
[0011] 在预投票结果不满足设定的共识标准的情况下,进入下一轮区块共识,否则进入预提交阶段;
[0012] 在预提交结果不满足设定的共识标准的情况下,则进入下一轮区块共识,否则进入区块提交阶段。
[0013] 在一个实施例中,所述统一数据管理工具配置为利用mycat数据库
中间件来适配多种类型的档案数据库。
[0014] 在一个实施例中,所述统一数据管理工具被配置为当获取到所述本地档案系统数据库的操作日志后,根据存储的所述本地档案系统数据库的操作者的账户权限选择是否将交易数据上链或者进行事务回滚操作。
[0015] 在一个实施例中,所述已验证交易池的构建包括:
[0016] 所述统一数据管理工具将交易提交至交易缓存池,并进行本地交易的验证,若验证失败则返回给所述统一数据管理工具处理,若验证成功,则将交易添加至已验证交易池。
[0017] 在一个实施例中,所述共识标准设定为赞成票超过2/3。
[0018] 在一个实施例中,所述区块提议者是所述区块链网络中公钥最小或权重最大的验证节点。
[0019] 在一个实施例中,所述区块链网络被设置为,本地节点发布交易需要私钥的签名,非本地节点对所述区块链网络中的节点的数据进行
访问时,需要拥有已被授权的私钥。
[0020] 根据本发明的第二方面,提供一种基于区块链的档案信息安全管理方法。该方法包括以下步骤:
[0021] 获取本地档案系统数据库的操作日志并将操作日志统一为交易数据发布到区块链网络;
[0022] 所述区块链网络对接收到的交易数据进行签名验证和交易数据共识;
[0023] 根据所述区块链网络反馈的交易结果对所述本地档案系统数据库进行操作。
[0024] 与现有技术相比,本发明的优点在于:结合数据管理工具拓展性强、通用性高、支持服务广等特点,实现嫁接多种现有数字档案数据库系统;利用区块链技术中去中心化、节点数据共享、防篡改等特点,解决数字档案数据库安全性低、灾备能力弱等问题,实现高效自动化的数据库日志共识,为认证档案完整性、操作追溯、档案数据备份等应用提供支持。
附图说明
[0025] 以下附图仅对本发明作示意性的说明和解释,并不用于限定本发明的范围,其中:
[0026] 图1是根据本发明一个实施例的基于区块链的档案信息安全管理系统的网络结构示意图;
[0027] 图2是根据本发明一个实施例的基于区块链的档案信息安全管理系统的拓扑图;
[0028] 图3是根据本发明一个实施例的基于区块链的档案信息安全管理方法的
流程图;
[0029] 图4是根据本发明一个实施例的区块链共识的流程图;
[0030] 图5是根据本发明一个实施例的档案数据上链的流程图;
[0031] 图6是根据本发明一个实施例的从区块链中读取数据的流程图。
具体实施方式
[0032] 为了使本发明的目的、技术方案、设计方法及优点更加清楚明了,以下结合附图通过具体实施例对本发明进一步详细说明。应当理解,此处所描述的具体实施例仅用于解释本发明,并不用于限定本发明。
[0033] 在本文示出和讨论的所有例子中,任何具体值应被解释为仅仅是示例性的,而不是作为限制。因此,示例性实施例的其它例子可以具有不同的值。
[0034] 对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,所述技术、方法和设备应当被视为
说明书的一部分。
[0035] 本发明提出的基于区块链的档案信息安全管理系统和方法,通过结合统一化数据管理工具和区块链技术来改进目前档案数据库系统现有的管理方法,实现档案数据安全可信、不可篡改、高效管理的目的。
[0036] 区块链是一种由多方共同维护,以块链结构存储数据,使用
密码学保证传输和访问安全,能够实现数据一致存储、无法篡改、无法抵赖的技术体系。区块链可以理解为一种全民参与记账的技术,它记录并存储网络中发生的每一笔交易,创建一个不可撤销且可审计的交易历史记录。本发明将区块链应用于档案信息安全管理,具有去中心化、时序数据、集体维护、安全可信等优点。
[0037] 参见图1和图2所示,本发明实施例的基于区块链的档案信息安全管理方法的网络结构包括区块链网络、档案系统数据库(或称本地档案数据库,其包括本地档案管理系统和数据库)和统一数据管理工具,其中统一数据管理工具与区块链网络和本地档案数据库具有信息交互,区块链网络包括互相连接的节点,例如通过网口互连,在实际应用中,本地档案数据库和统一数据管理工具可承载在一台
服务器上(如标记为档案服务器1),或者本地档案数据库承载在一台计算机上,而统一数据管理工具承载在另一台计算机。
[0038] 1)、关于本地档案数据库
[0039] 各本地档案处使用已适配的数据库系统,无须更换本地数据库
系统软件。本地数据库能够支持数据库系统管理员进行常规的数据库读写操作,并拥有数据库日志记录功能以支持事务的回滚和重建。本地档案数据库将本地对数据表的操作转化为日志形式,并提供数据库操作日志的访问接口。
[0040] 2)、关于统一数据管理工具
[0041] 统一数据管理工具架设在区块链网络和本地档案数据库之间,支持适配Oracle和MySQL数据库,例如,通过mycat数据库中间件间接适配各种类型的数据库。该统一数据管理工具可作为后台服务部署在本地计算机上,针对本地数据库系统的类型,进行相应的适配选择。适配完成后,统一数据管理工具可调用本地档案数据库提供的日志访问接口,通过配置相应的数据库管理员的账号密码得到访问本地数据库的权限,获取本地数据库操作日志,并将其统一化为特定交易格式。例如,针对不同的数据库账号配置相应的公私钥,将交易打包进行私钥签名后发布至区块链网络,等待区块链网络共识的反馈。
[0042] 统一数据管理工具同时具有读取区块链中交易数据的功能,通过读取区块链中的交易数据,自动剥离出交易中存放的数据库操作日志数据,作为本地数据库的事务回滚和重建的
支撑。
[0043] 3)、关于区块链网络
[0044] 各个本地部署区块链节点构成区块链网络,区块链网络负责对来自统一数据管理工具发布的交易进行签名的验证和数据的共识。若交易成功则将交易数据存储至区块链中,并反馈交易成功信息给统一数据管理工具。若交易失败则反馈交易失败信息给统一数据管理工具,统一数据管理工具负责对本地数据库进行事务回滚的操作。
[0045] 结合图1和图2的网络结构,本发明实施例的基于区块链的档案信息安全管理方法包括以下步骤,参见图3所示:
[0046] 步骤S310,本地数据库对外提供访问数据库操作日志的接口。
[0047] 本地档案数据库(简称为本地数据库或档案数据库)拥有操作日志记录功能,能够记录所有更改数据的语句。本地档案数据库对外提供一个访问数据库操作日志的接口。
[0048] 步骤S320,统一数据管理工具通过本地数据库提供的日志访问接口获取数据库操作日志。
[0049] 在本地部署一个统一化的数据管理工具,针对本地数据库的类型,设置相应的数据接收模式,通过本地数据库提供的日志访问接口,获取数据库的操作日志。统一数据管理工具获取数据库的操作记录的方法有多种,如实时日志
抽取方式和轮询日志抽取方式等。
[0050] 例如,对于实时日志抽取方式,其通过在档案数据库中设置相应的触发器、存储过程和java程序来实现实时的数据抽取,主要过程包括:
[0051] 步骤S11,创建存储过程来添加用户细粒度审计。当超级管理员ADMIN想对某个用户及其表进行审计时,通过创建存储过程来对用户添加细粒度审计,记录该用户的DML语句。存储过程创建成功后,可快速、方便的为数据库中的用户添加操作审计。
[0052] 步骤S12,为用户ADMIN添加细粒度审计后,ADMIN的所有DML操作记录将被记录在sys.fga_log$表中,由于该表中无用字段太多,通过提取有用的字段构建一张精简审计视图DBA_FGA_AUDIT_TRAIL。
[0053] 步骤S13,为实现数据的自动抽取和发送,需为所有纳入操作审计范围的表设置触发器,当用户对该表进行DML操作后,触发器被触发,自动获取该用户最新一条的操作记录,并封装成既定的数据格式。
[0054] 步骤S14,在表触发器获取操作记录后,需构建数据传输通道将操作记录实时发送至区块链中间件。在数据库内写入java程序,作为socket客户端,区块链中间件开启实时socket服务端对操作数据进行接收。
[0055] 上述日志抽取方式能够实现实时地对数据库中新增的操作记录进行提取,并发送至区块链网络达成有效的共识。但该方式需对数据库表设置触发器,若数据库中用户的数据表太多,将对数据库产生负担,降低访问数据库的效率,因此适用于实时性要求高、数据表少的环境。
[0056] 又如,对于轮询日志抽取方式,通过在区块链中间件后台服务中设置定时访问服务,以外部轮询的方式来抽取数据库中新增的操作记录。实现的过程主要包括:
[0057] 步骤S21,创建存储过程来添加用户细粒度审计。当超级管理员想对某个用户及其表进行审计时,通过创建存储过程来对添加细粒度审计,审计该用户的DML语句(与步骤S11相同)。
[0058] 步骤S22,为用户ADMIN添加细粒度审计后,ADMIN的所有DML操作记录将被记录在sys.fga_log$表中,由于该表中无用字段太多,通过提取有用的字段构建一张精简审计视图DBA_FGA_AUDIT_TRAIL(与步骤S12相同)。
[0059] 步骤S23,通过外部轮询方式定时对审计视图DBA_FGA_AUDIT_TRAIL进行新增操作记录的抽取。由于视图中可能累积大量的操作记录,因此在外部后台服务中创建一个消息缓存队列,以此来支持系统的可伸缩性,减轻区块链网络接收交易的压力。
[0060] 上述轮询日志抽取方式通过定时轮询对数据库中新增的操作记录进行提取,并在外部设有消息缓存队列,来缓存每次获取的大量操作记录,以此减轻区块链网络处理交易的压力。该方式适用于实时性要求不高、数据表多、操作记录多的环境。
[0061] 在实际应用中,统一数据管理工具可采用自主开发的软件,由PC客户端和后台服务端构成,例如PC客户端使用Electron-vue
框架进行搭建和开发,后台服务端使用Spring boot框架进行搭建和开发。
[0062] 步骤S330,统一数据管理工具将获取到的数据库操作日志统一化为特定的交易格式,打包发送给区块链网络。
[0063] 步骤S340,区块链网络对接收的交易数据进行共识处理。
[0064] 各本地档案处同时部署一个区块链节点,形成区块链网络。区块链网络负责接收由统一数据管理工具发送过来的交易数据,结合高效的共识
算法,达成区块链网络数据共识并存储在区块链中。关于区块链的共识过程将在下文具体介绍。
[0065] 步骤S350,区块链网络各节点对外提供访问
区块链交易数据的接口。
[0066] 数据在区块链达成共识并同步后,支持从不同的节点读取数据,各节点对外提供访问区块链交易数据的接口,为本地数据库提出的事务回滚、重建需求提供相应的数据库日志。
[0067] 区块链网络搭建完后向外提供向区块链写入交易的接口和查询链上交易信息的接口。
[0068] 例如,对于写入交易的接口,首先调用creatTX函数,对交易进行打包准备,包括:将OS_USERNAME(
操作系统用户)、DB_USERNME(数据库用户名)、TX_TIMESTAMP(时间)、OBJ_OWNER(表的所有者)、OBJ_NAME(表名)、TX_SQL_BIND(操作涉及的value)、TX_SQL_TEXT(具体的sql语句),以map
的形势写入映射表assetData中;将OBJ_NAME(表名)设为metaData;读取用户的密钥对KeyPair。接着调用doCreate函数传入assetData、metaData、KeyPair三个参数;最后,调用sendTransaction函数向区块链网络发送该笔交易,并返回该笔交易的id。区块链网络接收到该笔交易后会对交易进行验证,若交易合法,则将交易写入区块中。
[0069] 对于查询链上交易相关信息的接口,通过交易id进行查找,区块链提供精确查找的接口getTransactionById,输入交易的id查询此笔交易的详细信息;通过assetData里面的关键字进行查找,区块链提供关键字查找的接口getAssets,输入想查找的关键字,可获取所有assetData中包含该关键字的所有交易id列表,再通过对交易id列表进行循环精确查找,获取链上所有相关的交易信息;通过metaData里面的关键字进行查找,区块链提供关键字查找的接口getMetaData,输入想查找的关键字,可获取所有metaData中包含该关键字的所有交易id列表,再通过对交易id列表进行循环精确查找,获取链上所有相关的交易信息;区块链提供基于交易id查找所在区块高度的接口getBlocksByTransactionId,通过输入某笔交易的id,可以获取该交易所在的区块高度;区块链提供基于区块高度查看区块内所有信息的接口getBlock,通过输入某个高度数,可以获取该区块内的所有交易信息。
[0070] 关于区块链网络共识的实施例
[0071] 对于区块链网络,当多种数字档案系统均能通过统一数据管理工具接入区块链网络时,某些档案系统可能会以较高
频率产生档案数据(例如,集中频繁增加电子档案、频繁用户操作等),因而,区块链网络必须具备极高的交易处理速度,才能够与高交易生成频率的数字档案系统相匹配,从而及时上链交易。据此,在一个实施例中,选择采用基于BFT(拜占庭容错)的共识算法机制,相对于传统的PBFT(实用拜占庭容错)算法,本发明提供的BFT机制在节点间引入选举机制,只需要有两轮投票即可达成共识。
[0072] 参见图4所示,区块链网络共识过程整体涉及:提议者->预投票->预提交->提交->新区块,共5个阶段。
[0073] 首先,统一数据管理工具负责提交交易至交易缓存池,经过本地交易的验证,若验证失败则返回给统一数据管理工具处理,若验证成功,则将交易添加至已验证交易池。具体步骤如下。
[0074] 步骤S410,选择区块提议者
[0075] 新一轮共识过程开始,基于轮询调度算法从区块链网络中选出一个区块提议者,区块提议者从已验证交易池中提取交易并打包成区块,并负责将区块提交信息广播至区块链网络所有验证节点。若交易无效或广播超时,则进入新一轮区块共识,若交易有效则进入预投票阶段。
[0076] 具体地,区块链网络的各验证节点共同维护同一个创始文件genesis.json,文件中有一个配置项是对应所有验证节点的列表,列表记录各验证节点的pub_key(公钥)和power(权重),假设目前有四个验证节点V1、V2、V3、V4,权重power分别为10、20、30、30,目前全网的权重total=90。
[0077] 第一次轮询选举区块倡议者:
[0078] V1.Accum=10:V1.Accum+V1.power=0+10=10
[0079] V2.Accum=20:V2.Accum+V2.power=0+20=20
[0080] V3.Accum=30:V3.Accum+V3.power=0+30=30
[0081] V4.Accum=30:V4.Accum+V4.power=0+30=30
[0082] 由于V3和V4权重最大都为30,此时按照V3和V4的pub_key由小到大排序,假设V3的公钥更小,则选择V3为本轮的区块链倡议者,此时V3.Accum=30-90=-60。
[0083] 第二次轮询选举区块倡议者:
[0084] V1.Accum=20:V1.Accum+V1.power=10+10=20
[0085] V2.Accum=40:V2.Accum+V2.power=20+20=40
[0086] V3.Accum=-30:V3.Accum+V3.power=-60+30=-30
[0087] V4.Accum=60:V4.Accum+V4.power=30+30=60
[0088] 由于此轮V4权重最大为60,则选择V4为本轮的区块链倡议者,此时V4.Accum=60-90=-30
[0089] 第三次轮询选举区块倡议者:
[0090] V1.Accum=30:V1.Accum+V1.power=20+10=30
[0091] V2.Accum=60:V2.Accum+V2.power=40+20=60
[0092] V3.Accum=0:V3.Accum+V3.power=-30+30=0
[0093] V4.Accum=0:V4.Accum+V4.power=-30+30=0
[0094] 由于此轮V2权重最大为60,则选择V2为本轮的区块链倡议者,此时V2.Accum=60-90=-30。
[0095] 步骤S420,验证节点进行预投票
[0096] 每个区块包含当前区块高度和多笔
交易记录,其中每笔交易记录包括当前交易的公钥地址、签名信息、交易信息。其中交易信息主要为每笔数据库的操作记录,包括:OS_USERNAME(操作系统用户)、DB_USERNME(数据库用户名)、TX_TIMESTAMP(时间)、OBJ_OWNER(表的所有者)、OBJ_NAME(表名)、TX_SQL_BIND(操作涉及的value)、TX_SQL_TEXT(具体的sql语句)。
[0097] 验证节点收到提议者广播的区块信息之后就进入预投票阶段,因为每个验证节点接收到的广播有时间差,若验证节点还被锁在上一轮提交中,则还是给之前提交的区块投票,否则就投给当前提交的区块。如果提议者广播的区块超时或者广播的区块是无效的,则验证节点投空区块票。
[0098] 步骤S430,进行区块预提交
[0099] 如果预投票超时且未达到2/3的投票共识,则进入新一轮区块共识。否则进入预提交阶段,若此时收到超过2/3的赞成票,则广播一条预提交的消息,且每个节点释放上一轮预提交的锁,并把自己锁定在当前区块上。若收到超过2/3的空区块票,则释放上一轮预提交的锁,并对空区块投票。
[0100] 应注意的是,当一个节点锁在一个区块预提交的时候,它会将当前投票轮数设置为最后一轮,并只对这个区块投预提交票。
[0101] 步骤S440,区块提交
[0102] 如果预提交超时或者未达到2/3的投票共识,则进入新一轮区块共识。否则进入提交阶段,当每个节点都收到该区块并且收到超过2/3的预提交票信息后,立即提交区块。
[0103] 步骤S450,新区块阶段
[0104] 当区块提交结束后,整个区块链网络的区块高度就会增加,并进入新一轮区块共识。与此同时,当前区块链中保存的区块数据可供统一数据管理工具进行查询和更新。
[0105] 本发明基于区块链的档案信息系统数据防篡改安全管理的方法,结合数据库、统一化数据管理工具和区块链技术,实现将多种数据库的操作日志提取并存入区块链。
[0106] 关于数据上链的实施例
[0107] 为进一步理解本发明,图5示意了数据上链过程,其中档案处的档案专员通过操作数字档案管理系统,对本地数据库进行数据状态的更新,统一数据管理工具负责实时获取数据库的操作日志。
[0108] 具体的,统一数据管理工具需配置相应的数据库管理员的账号密码得到访问数据库的权限。统一数据管理工具存有当前本地数据库操作日志的最新标志状态,并实时获取本地数据库的状态。通过对比标志状态,若数据库有更新,统一数据管理工具获取最近更新的数据库操作日志。统一数据管理工具对更新的数据库操作日志进行操作者权限的确认,若操作者为未授权或非法用户,则对本地数据库进行事务回滚操作。若操作者权限正确,则统一数据管理工具负责统一化日志数据格式并打包交易。同时统一数据管理工具针对不同的数据库账号配置好相应的公私钥,用私钥对打包的区块进行签名,将交易广播至区块链网络。区块链网络节点负责验证交易和数字签名的合法性,若交易未达成共识则返回上链失败消息给工具,工具负责对本地数据库进行事务回滚操作;若交易达成共识,则将交易永久的存储到区块链中。
[0109] 关于读取区块链数据的实施例
[0110] 图6示出了从区块链中读取数据的流程,档案处通过统一数据管理工具向区块链网络提出访问
请求,区块链网络验证提出访问请求节点是否拥有权限,若无权限访问则反馈请求失败消息给档案处;若权限正确,则开始读取区块链上的数据。通过对数据的高效读取并对读取的数据进行相应的剥离操作,从中获取操作日志数据;统一数据管理工具在获取日志数据后,针对本地数据库类型,将日志还原成对应的日志格式,供档案处进行日志查询验证或数据库的回滚重建等事务操作。
[0111] 综上,本发明通过统一化的数据管理工具,结合mycat数据库中间件适配多种类型数据库,实现面向异构数据库系统的数据读取和事务操作;统一化的数据管理工具存有本地数据库所有操作者的账户,当获取到数据库操作日之后,工具确认操作者的权限,再选择是否将数据上链或者进行事务回滚等操作;通过为各本地节点配备相应的公私钥,本地节点发布交易需要私钥的签名。其他节点若要对区块链网络中的某个节点的数据进行访问,需要拥有已被授权的私钥才能进行访问。本发明将数据库操作日志存入区块链中,当本地数据库发生数据丢失、损坏或被误删时,通过读取区块链中的操作日志文件记录,对本地数据库进行事务回滚或重建。同时区块链中的数据可用来验证本地数据库数据的真伪,也可供已被授权的第三方节点访问。
[0112] 相对于传统的档案数据库系统管理方法,本发明的优势体现在以下几方面:
[0113] 1)、在传统的档案数据库中,数据库管理员或黑客可随意更改或删除数据库记录,这给档案管理工作带来了很大的安全隐患。本发明通过结合区块链技术,将数据库操作日志存入区块链中,单独对数据库进行修改将不会改变区块链中的记录,保障数据库日志的无法篡改,提高的数据的安全性。
[0114] 2)、目前各单位档案管理处采用的数据库系统不尽相同,导致数据存取、提交、备份等操作存在差异,支持事务性的能力也参差不齐,这使得档案数据灾备中心需要同时面向多种不同的数据库,针对特定数据库进行相关的接口开发工作,将导致档案数据灾备中心建设复杂、成本很高。本发明通过将数据库操作日志存储至区块链中来实现数据库备份,避免各单位需对本地数据库进行相关的接口开发工作。此外,本发明通过在数据库之上架设统一数据管理工具,实现适配多种数据库操作接口,达到高效的日志读取操作。相比传统的面向不同数据库备份方法,使用统一数据管理工具的方法拓展性强、通用性高、支持服务广;传统的数据库备份方法通过在多个异地配置硬件设备来保存数据库备份。使用本方法,每个节点都可充当一个备份点,所有节点共同维护全网的备份,各节点节省了硬件设备的开销,成本大大降低。
[0115] 3)、针对目前数据库多人维护带来的管理和安全问题(同一单位数字档案数据可能分散在不同部门保管,每个部门还配置不同的数据库账号)。本发明通过引入权限控制机制,统一数据管理工具对数据库操作者权限进行审核,全网节点则对统一数据管理工具提交交易的私钥签名进行验证,达到自动化的管理保障各节点的利益及数据信息的安全。
[0116] 需要说明的是,虽然上文按照特定顺序描述了各个步骤,但是并不意味着必须按照上述特定顺序来执行各个步骤,实际上,这些步骤中的一些可以并发执行,甚至改变顺序,只要能够实现所需要的功能即可。
[0117] 本发明可以是系统、方法和/或
计算机程序产品。计算机程序产品可以包括计算机可读存储介质,其上载有用于使处理器实现本发明的各个方面的计算机可读程序指令。
[0118] 计算机可读存储介质可以是保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以包括但不限于电存储设备、磁存储设备、光存储设备、电磁存储设备、
半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、
硬盘、随机存取
存储器(RAM)、
只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、静态
随机存取存储器(SRAM)、便携式压缩盘只读存储器(CD-ROM)、数字多功能盘(DVD)、记忆棒、
软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。
[0119] 以上已经描述了本发明的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。