PostgreSQL数据库中实现WAL日志透明加密和解密的方法技术

技术编号:33042442 阅读:26 留言:0更新日期:2022-04-15 09:24
本发明专利技术属于关系型数据库管理及操作系统技术领域,尤其涉及一种PostgreSQL数据库中实现WAL日志透明加密和解密的方法及其用途。本方法克服了PostgreSQL关系型数据库管理系统不支持WAL日志存储加密的缺陷,利用本方法加密后WAL日志数据以密文的方式存储,防止了数据直接暴露,大大降低了WAL日志数据被泄漏和恶意破坏的风险,数据安全得到保障,另外,本方法实施过程中用户对数据库WAL日志的访问是完全无感知的,同时客户端应用也不需要做任何修改就可以直接应用到加密数据库上,因此本方法扩展了PostgreSQL数据库的安全功能,对于数据库安全具有十分重要的意义。库安全具有十分重要的意义。库安全具有十分重要的意义。

【技术实现步骤摘要】
PostgreSQL数据库中实现WAL日志透明加密和解密的方法


[0001]本专利技术属于关系型数据库管理及操作系统
,尤其涉及一种PostgreSQL数据库中实现WAL日志透明加密和解密的方法及其用途。

技术介绍

[0002]WAL日志(预写日志)是保证数据完整性的一种标准方法。WAL日志的中心概念是数据文件(存储着表和索引)的修改必须在这些动作被日志记录之后才被写入,即在描述这些改变的日志记录被进行永久存储以后。此后,如果发生系统崩溃,可以使用WAL日志来恢复数据库,没有被应用到数据页面的改变可以根据WAL日志记录重做,因此WAL日志也被称为REDO日志(重做日志)。
[0003]WAL日志中包含有用户数据相关信息,为了保障用户数据安全,需要将WAL日志以加密的方式进行存储。
[0004]然而,目前的PostgreSQL关系型数据库管理系统尚不支持WAL日志存储加密,使得日志数据仍然以明文方式进行存储,数据安全无法得到保障,从而影响了数据库性能的正常发挥。因此,在PostgreSQL数据库中实现WAL日志存储加密具有着本文档来自技高网...

【技术保护点】

【技术特征摘要】
1.一种PostgreSQL数据库中实现WAL日志透明加密和解密的方法,其特征在于,本方法采用透明加密方式实现WAL日志的加密和解密,当用户向PostgreSQL数据库中写入数据时,生成的WAL日志数据为明文信息,该部分数据先存储在数据库实例的共享缓冲区中,然后由后台进程写入磁盘,本方法在数据由共享缓冲区写入磁盘的过程中对WAL日志数据进行加密,当数据库处于需要读取WAL日志数据的场景时,则会从磁盘将WAL日志数据读取到共享缓冲区中,在此读取过程中WAL日志数据进行自动解密。2.根据权利要求1所述的PostgreSQL数据库中实现WAL日志透明加密和解密的方法,其特征在于,所述方法包括以下步骤:(一)WAL日志写入加密(1)生成WAL数据链表;(2)将WAL数据拷贝到WAL buffer中;(3)判断系统是否开启了数据存储加密功能,若已开启,则进入下步加密处理,若未开启,则直接向磁盘写入未加密的数据;(4)调用加密接口对WAL buffer中的数据进行加密;(5)向磁盘写入加密后的数据;(二)WAL日志读取解密(1)从WAL段文件中读取加密后的WAL日志page页数据;(2)获取当前处理的WAL日志页的tweak值;(3)调用解密接口对page页数据进行解密;(4)解密后的明文数据存储到WAL buffer中。3.根据权利要求2所述的PostgreSQL数据库中实现WAL日志透明加密和解密的方法,其特征在于,步骤(一)中第(4)步具体包括下述处理过程:(1)获取当前处理的WAL日志页的tweak值;(2)调用AES

128

XTS加密接口以XLOG_BLCKSZ为单位对WAL buffer中的数据进行加密,XLOG_BLCKSZ为默认page页大小,所述page页是WAL数据磁盘IO的单位,其默认的大小为8192kb;(3)将加密后的page页数据写入WAL段文件中。4.根据权利要求3所述的PostgreSQL数据库中实现WAL日志透明加密和解密的方法,其特征在于,所述加密过程以XLOG_BLCKSZ为单位进行,加密完成后每次写一个page页的数据到磁盘文件中。5.根据权利要求2所述的PostgreSQL数据库中实现WAL日志透明加密和解密的方法,其特征在于,步骤(二)中第(3)步调用解密接口对page页数据进行解密,通过调用AES<...

【专利技术属性】
技术研发人员:卞淑琴何小栋
申请(专利权)人:广州海量数据库技术有限公司
类型:发明
国别省市:

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

1