openGauss学习笔记123 openGauss 数据库管理设置账本数据库账本数据库概述

openGauss学习笔记-123 openGauss 数据库管理-设置账本数据库-账本数据库概述123.1 背景信息123.2 操作步骤

openGauss学习笔记-123 openGauss 数据库管理-设置账本数据库-账本数据库概述

123.1 背景信息

账本数据库融合了区块链思想,将用户操作记录至两种历史表中:用户历史表和全局区块表。当用户创建防篡改用户表时,系统将自动为该表添加一个hash列来保存每行数据的hash摘要信息,同时在blockchain模式下会创建一张用户历史表来记录对应用户表中每条数据的变更行为;而用户对防篡改用户表的一次修改行为将记录至全局区块表中。由于历史表具有只可追加不可修改的特点,因此历史表记录串联起来便形成了用户对防篡改用户表的修改历史。

用户历史表命名和结构如下:

表 1 用户历史表blockchain.hist所包含的字段

字段名 类型 描述
rec_num bigint 行级修改操作在历史表中的执行序号。
hash_ins hash16 INSERT或UPDATE操作插入的数据行的hash值。
hash_del hash16 DELETE或UPDATE操作删除的数据行的hash值。
pre_hash hash32 当前用户历史表的数据整体摘要。

表 2 hash_ins与hash_del场景对应关系

- hash_ins hash_del
INSERT (√) 插入行的hash值
DELETE (√) 删除行的hash值。
UPDATE (√) 新插入数据的hash值 (√) 删除前该行的hash值。

123.2 操作步骤

1.创建防篡改模式。

例如,创建防篡改模式ledgernsp。

openGauss=# CREATE SCHEMA ledgernsp WITH BLOCKCHAIN;