VastbaseG100

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

Menu

存储加密功能

功能描述

Vastbase数据库采用硬加密方式实现表级别数据加密功能,当用户向数据库中写入数据时,数据自动加密;当用户从数据库中查询数据时,数据被自动解密。建议开启存储加密功能,防止数据泄露。

注意事项

  • 若需要使用gs_encrypt,key需要指定为3种类型的字符,且长度要为16。
  • initdb时可使用–algothim指定加密算法。若使用非安全加密算法,可能存在安全风险,推荐使用安全加密算法,如:AES128。
  • 目前支持两种国密算法,分别是:SM4-CTR-128和AES-CTR-128,默认支持的是AES-CTR-128。
  • 仅在Vastbase G100 V2.2(Build 5) 版本支持。

示例

1、对密钥进行base64编码,生成存储加密密钥。

echo -n "12345abcde@ABCDE"|base64

结果显示如下:

MTIzNDVhYmNkZUBBQkNERQ==

生成主密钥。

echo -n "23456abcde@ABCDE"|base64

结果显示如下:

MjM0NTZhYmNkZUBBQkNERQ==

2、初始化实例(-K指定存储加密密钥,–masterkey指定主密钥)。

vb_initdb -D testdb --nodename='testdb' --algorithm=SM4-CTR-128 -K MTIzNDVhYmNkZUBBQkNERQ== --masterkey=MjM0NTZhYmNkZUBBQkNERQ==

3、配置密钥。

gs_encrypt -v ABCDEFGHIJKLMNOP -B MTIzNDVhYmNkZUBBQkNERQ== TRANS_ENCRYPT_SAMPLE_STRING

4、将上一步结果写入配置文件中。

Transparent_encrypted_string='上一步的结果'

5、启动实例。

在出现提示“please input the master key:”时,输入masterkey:MjM0NTZhYmNkZUBBQkNERQ==

6、vsql登录数据库,修改初始化用户密码。

alter user vastbase password 'Aa123456';

创建表并插入数据。

create table test_pwd (id int,name text);
insert into test_pwd values (1,'加密');

查询表中数据。

select * from test_pwd;

当结果显示如下信息,则表示数据插入成功。

 id | name 
----+------
 1 | 加密
(1 row)

7、进入数据目录($PGDATA/base/)使用如下命令查看是否加密成功,没返回则表示加密成功。

grep -iR '加密'