VastbaseG100

基于openGauss内核开发的企业级关系型数据库。

Menu

用户数据完整性

功能描述

Vastbase支持用户数据完整性校验,通过密码卡SM3摘要算法实现。该功能涉及的内容如下:

  • 适配光电安辰密码卡,支持用户通过SM3算法实现用户数据完整性校验。

  • 修改江南天安加密机的用户数据完整性校验使用流程。

注意事项

用户数据完整性校验功能始于数据库初始化,直至数据库进程结束,为了确保完整性校验功能的有效性和准确性,这个过程中需要保持相同的校验算法和环境配置。

使用流程

光电安辰

1、配置光电安辰密码卡。

2、获取光电安辰的硬件动态库文件(libskf.so、libsdf.so),并将库文件与数据库实例$GAUSSHOME/lib/postgresql目录下的hwcipher.so放在同一目录下(可自定义路径)。

3、在~/.bashrc文件中配置如下环境变量:

  • 设置环境变量CRYPTDEV_LIBPATH为动态库所在路径(不需要包含动态库名称)。

  • 设置环境变量CRYPTDEV_TYPE=gdaccard表示使用光电安辰密码卡。

4、初始化实例。

5、启动并连接数据库。

6、执行用户数据完整性校验,查询损坏的表数据会报错。

江南天安

1、配置江南天安加密机。

2、获取江南天安的硬件动态库文件(libTassSDF4GHVSM.so)和配置文件(tassConfig.ini),将库文件和数据库实例的lib/postgresql目录下的hwcipher.so放在同一目录下(可自定义路径)。

3、在~/.bashrc文件中配置如下环境变量:

  • 设置环境变量CRYPTDEV_LIBPATH为硬件动态库libTassSDF4GHVSM.so和hwcipher.so所在路径(不要包含动态库名称)。

  • 设置环境变量CRYPTDEV_CFG_PATH为江南天安配置文件tassConfig.ini所在路径。

  • 设置环境变量CRYPTDEV_TYPE=jntakms表示使用江南天安加密机。

4、初始化实例。

5、启动并连接数据库。

6、执行用户数据完整性校验,查询损坏的表数据会报错。

示例

前置步骤

1、服务器已安装配置光电安辰密码卡。

2、在~/.bashrc文件中配置环境变量。

vi ~/.bashrc

添加如下内容(CRYPTDEV_LIBPATH已实际路径为准):

export CRYPTDEV_TYPE=gdaccard
export CRYPTDEV_LIBPATH=/home/wzr

3、重新加载配置文件。

source ~/.bashrc

4、初始化数据库实例。

vb_initdb -D test --nodename=test

示例1: 模拟损坏表数据,校验数据完整性。

1、启动并连接数据库。

vb_ctl start -D test -l logfile
vsql -d vastbase -r

2、修改用户密码。

alter role wzr password 'Huawei@123';
alter role vbadmin password 'Vbase@admin';

3、创建测试表。

create table tab_1144382(id int,a1 text);

4、插入数据。

insert into tab_1144382(id,a1) select generate_series(1,10000000),'a' from dual;

5、查询表数据行。

select count(*) from tab_1144382;

6、查看表的物理路径。

select pg_relation_filepath('tab_1144382');

返回结果为:

7、退出数据库。

\q

8、使用dd命令模拟损坏表数据。

time dd bs=8192 count=1000 seek=1 of=test/base/19149/19153 if=/dev/urandom

返回结果如下:

9、重启数据库。

vb_ctl restart -D test -l logfile

10、连接数据库查看表。

vsql -d vastbase -r
select * from tab_1144382;

返回结果如下,文件损坏后查询结果报错:

示例2: 使用vb_probackup工具进行备份恢复。

1、设置GUC参数enable_cbm_tracking=on

echo "enable_cbm_tracking = on" >>test/postgresql.conf

enable_cbm_tracking

参数说明: 当使用roach执行数据库实例的全量和增量备份时需要开启此参数,如果关闭会导致备份失败。

取值范围: 布尔型

  • on表示追踪功能开启。
  • off表示追踪功能关闭。

默认值: off

2、启动并连接数据库。

vb_ctl start -D test -l logfile
vsql -d vastbase -r  

3、修改用户密码。

alter role wzr password 'Huawei@123';
alter role vbadmin password 'Vbase@admin';

4、创建测试表。

create table tab_1142794(id int,a1 text);

5、初始化备份路径。

vb_probackup init -B /home/wzr/probackup

6、增加实例。

vb_probackup add-instance -B /home/wzr/probackup -D /home/wzr/test --instance=backup

7、设置配置信息。

vb_probackup set-config -B /home/wzr/probackup --instance=backup -d vastbase -h localhost -U vbadmin -W Vbase@admin

8、执行全量备份。

vb_probackup backup -B /home/wzr/probackup -b full --instance=backup

备份成功,返回结果如下:

9、验证备份文件是否存在且未损坏。

vb_probackup validate -B /home/wzr/probackup --instance=backup

验证成功,返回结果如下:

10、执行增量备份。

vb_probackup backup -B /home/wzr/probackup -b ptrack --instance=backup

备份成功,返回结果如下:

11、验证备份文件是否存在且未损坏。

vb_probackup validate -B /home/wzr/probackup --instance=backup

验证成功,返回结果如下:

12、停止数据库。

vb_ctl stop -D test -l log_file

13、执行恢复。

vb_probackup restore -B /home/wzr/probackup --instance=backup -D /home/wzr/new

恢复成功,返回结果如下:

14、修改备份文件,在配置文件中添加vbplsql_check=on。

echo "vbplsql_check=on" >>test/postgresql.conf

15、验证备份文件。

vb_probackup validate -B /home/wzr/probackup --instance=backup

验证失败,返回结果如下:

16、执行恢复。

vb_probackup restore -B /home/wzr/probackup --instance=backup -D /home/wzr/new

恢复失败,返回结果如下:

17、恢复配置文件,再次执行备份恢复。

vb_probackup restore -B /home/wzr/probackup --instance=backup -D /home/wzr/new

恢复成功,返回结果如下: