为了保障数据库长期稳定的运行、定期验证数据的完整性,Vastbase支持账本数据库,有效的实现防篡改功能。
账本数据库融合了区块链思想,将用户的操作记录到用户历史表和全局区块表两种历史表中,与用户创建的具有防篡改属性的“防篡改用户表”,进行校验。
若三者保持一致,则说明数据没有被篡改,以此来保护数据的安全。
账本数据库简介
当用户在账本Schema中,创建“防篡改用户表”时,系统将自动为该表添加一个hash列来保存每行数据的hash摘要信息。用户对“防篡改用户表”的修改行为将记录至全局区块表中。
同时,blockchain模式下会创建一张用户历史表,记录对应用户表中每条数据的变更行为。
由于历史表具有只可追加不可修改的特点,因此历史表记录串联起来便形成了用户对“防篡改用户表”的修改历史。
如何实现防篡改?
用户在“防篡改用户表”中插入数据时,系统会自动生成少量行级校验信息;用户执行DML时,系统会在全局区块表(GS_GLOBAL_CHAIN)中记录用户的操作;在用户表相应的用户历史表中记录数据的变化。
操作记录、数据变化记录和“防篡改用户表”中的数据,三者严格保持一致。
账本数据库提供高性能校验接口,用户可以十分方便的校验数据一致性。如果一致性校验失败,则说明数据可能发生篡改,需要及时联系审计管理员回溯操作记录历史。
用户历史表命名和结构
用户历史表blockchain.__hist所包含的字段
hash_ins与hash_del场景对应关系
实例操作
下面以表mvsschema.mvstable为例,查看相应的历史表中记录数据的更改等信息
1
创建防篡改模式
创建防篡改模式mvsschema
2
在防篡改模式下创建防篡改用户表
创建防篡改用户表mvsschema.mvstable
查看防篡改用户表结构及其对应的用户历史表结构
注:
1、dbe_perf和snapshot两个模式不能ALTER为blockchain属性,如:ALTER SCHEMA dbe_perf WITH BLOCKCHAIN;
2、系统模式不能 ALTER 为blockchain属性,如:ALTER SCHEMA pg_catalog WITH BLOCKCHAIN;
3、包含表的SCHEMA不能通过ALTER SCHEMA语句修改属性为blockchain。
3
修改防篡改用户表数据
对防篡改用户表执行INSERT/UPDATE/DELETE
4
用户历史表
在用户历史表blockchain.mvsschema_mvstable_hist中,记录对应用户表中每条数据的变更行为
5
查询全局区块表
用户对防篡改用户表的一次修改行为将记录至全局区块表中。查询全局区块表命令是直接查询gs_global_chain表,执行select * from gs_global_chain可以看到修改记录:
如何校验账本数据的一致性?
账本数据库校验功能目前提供两种校验接口:
ledger_hist_check(text, text)
ledger_gchain_check(text, text)
普通用户调用校验接口,仅能校验自己有权限访问的表。
校验防篡改用户表和用户历史表的接口为pg_catalog.ledger_hist_check,操作为:
SELECT pg_catalog.ledger_hist_check(schema_name text,table_name text);
如果校验通过,函数返回t,反之则返回f。
校验防篡改用户表、用户历史表和全局区块表三者是否一致的接口为pg_catalog.ledger_gchain_check,操作为:
SELECT pg_catalog.ledger_gchain_check(schema_name text, table_name text);
如果校验通过,函数返回t,反之则返回f。
实例操作
以防篡改属性的test_schema 与防篡改用户表test_table为例:
1
创建一个带有防篡改属性的test_schema
2
创建测试表
在具有防篡改属性的schema test_schema中创建测试表,并执行DML操作
3
校验“防篡改用户表”和“历史表”的一致性
校验防篡改用户表test_schema.test_table与其对应的历史表是否一致
该结果表明防篡改用户表和用户历史表中记录的结果能够一一对应,保持一致。
4
校验三者的一致性
查询防篡改用户表test_schema.test_table与其对应的历史表以及全局区块表中关于该表的记录是否一致
查询结果显示,上述三表中关于test_schema.test_table的记录保持一致,未发生篡改行为。
账本数据库融合区块链原理,篡改数据会导致“链”断开,以此来保障数据的完整性和安全性,是Vastbase防篡改不可或缺的一部分。
领取专属 10元无门槛券
私享最新 技术干货