发明名称 数据库恶意事务处理方法及其系统
摘要 本发明针对现有数据库系统面对恶意事务的攻击安全性不强和响应效率低下的问题,提供了一种数据库系统恶意事务处理方法及其系统,设置一个独立于数据库原有日志系统的事务恢复日志系统,以事务为单位、在事务提交时记录事务的执行历史,然后依据事务恢复日志所记录的内容,对已提交事务的合法性进行判定,当检测到入侵的恶意事务时通过检索事务恢复日志查询所有受恶意事务影响的数据,并对这些数据进行恢复,而未受影响的事务操作结果将被保留,从而保证数据库系统的正确性和可用性。该方法和系统后置式的处理模式可以将效率折损限制在可接受的范围内,确保数据库系统对用户请求做出及时的响应。
申请公布号 CN100504905C 申请公布日期 2009.06.24
申请号 CN200710177511.0 申请日期 2007.11.16
申请人 中国科学院软件研究所 发明人 陈驰;冯登国;徐震;张敏;咸鹤群;张德胜;张颖君;洪澄
分类号 G06F21/24(2006.01)I;G06F17/30(2006.01)I 主分类号 G06F21/24(2006.01)I
代理机构 北京君尚知识产权代理事务所(普通合伙) 代理人 李稚婷
主权项 1. 一种数据库恶意事务处理方法,其特征在于,设置一个独立于数据库原有日志系统的事务恢复日志系统,针对每一个用户事务产生一条日志记录,在事务提交时写入事务恢复日志表中,依据事务恢复日志所记录的内容,对已提交事务的合法性进行判定,当检测到入侵的恶意事务时通过检索事务恢复日志查询所有受恶意事务影响的数据,并对这些数据进行恢复,而保留未受影响的事务操作结果;其中,每一条事务恢复日志至少包含以下内容:事务的标识、读集、写集和事务提交的时间,其中读集是事务所读数据元素的全集,写集是事务所写数据元素的标识及其对应的数据前象组成的二元组的全集;所述事务恢复日志的生成方法是:在事务开始时为每一个事务创建一个标识符和两个数据元素集合:读集和写集,读集用于存放事务所读的数据元素,写集用于存放事务所写数据元素的标识及其前象组成的二元组;用户在提交读操作时,将其操作对象加入数据元素读集;用户在提交写操作时,将其操作对象和数据前象加入数据元素写集;当用户提交事务中断操作时,删除所述读集和写集;当用户提交事务提交操作时,使用事务标识符、读集、写集和提交时间构成事务恢复日志记录,将其写入持久存储,最后删除读集和写集;当依据事务恢复日志所记录的内容检测到入侵的原始恶意事务时,将数据库状态置为攻击态,获得原始恶意事务标识,然后根据以下步骤进行处理:1)创建恶意事务列表和数据元素恢复列表,并将这两个集合置为空集,其中,恶意事务列表的成员为事务的标识符,数据元素恢复列表的成员为数据元素的标识及其前象组成的二元组;2)对恶意事务列表和数据元素恢复列表进行初始化,将原始恶意事务的标识符并入恶意事务列表中;查找事务恢复日志,找到原始恶意事务对应的记录,将其写集并入数据元素恢复列表之中;3)按提交时间的先后顺序对原始恶意事务提交之后提交的每一个后继事务进行依赖性判断,如果后继事务依赖于恶意事务的操作结果,则:将其事务标识符并入恶意事务列表中;将其写集并入数据元素恢复列表之中,并对这些数据元素增加排他锁;4)对于恶意事务列表中的每一个恶意事务,根据事务恢复日志记录的事务提交时间顺序从后往前在事务恢复日志中找到相对应的记录,取其写集,对于写集中包含的每一个数据元素,执行以下操作:使用数据前象取代其现有值,在数据元素恢复列表中删除数据元素标识,对数据元素解除排他锁;处理完所有写集中的数据元素之后,将该恶意事务从恶意事务列表中删除;当恶意事务列表和数据恢复元素列表为空时,结束恶意事务处理流程,更改数据库系统的状态为正常态。
地址 100080北京市海淀区中关村南四街4号