gaussdb 数据库用户和安全管理【数据加密】【03】

1. 数据加密

数据加密的密钥由系统对钱夹密码的复杂变化逻辑生成。钱夹密码由用户指定输入,必须符合密码复杂度要求。

  • 注意:
    GaussDB不提供修改钱夹密码的接口,一旦设定,请牢记。

01.设定用于数据加密的钱夹密码。

通过以下SQL命令设定钱夹密码,以设定钱夹密码为gaussdb_123为例:

ALTER SYSTEM SET ENCRYPTION KEY  IDENTIFIED BY 'gaussdb_123'; 

说明:

  • 钱夹密码设定后,GaussDB通过对钱夹密码的一系列复杂变化,生成用于数据加密的密钥
  • 钱夹密码和用于数据加密的密钥经过加密处理后,存储到wallet_directory参数指定目录下的wallet.tablespace文件中。

02.开启加密数据访问。

通过设定的钱夹密码开启加密数据访问。GaussDB会对用户输入的密码进行校验,只有输入的密码和设置的钱夹密码完全一致,才允许使用加密功能。以钱夹密码为gaussdb_123为例:

ALTER SYSTEM SET ENCRYPTION WALLET OPEN IDENTIFIED BY 'gaussdb_123'; 

说明:

  • 如果密码验证通过,GaussDB会通过一系列复杂的逆运算,解密出用于数据加密的密钥。

03.创建加密表空间。

以创建加密表空间TABLESPACE_FVT_TABLESPACE_ENCRYPT为例:

CREATE TABLESPACE TABLESPACE_FVT_TABLESPACE_ENCRYPT LOCATION '/home/gaussdba/FVT_TABLESPACE_ENCRYPT' ENCRYPTION;

或者:

CREATE TABLESPACE TABLESPACE_FVT_TABLESPACE_ENCRYPT LOCATION '/home/gaussdba/FVT_TABLESPACE_ENCRYPT' ENCRYPTION USING 'AES128'; 

说明:

  • 以上两种SQL命令功能完全相同,可以使用其中任意一种。
  • 第二种创建加密表空间的SQL命令中,USING关键字后为加密存储使用的加密算法,目前该值必须为AES128,除此之外的加密算法暂时不支持。

04.将存储用户敏感信息的数据表存储到加密表空间下。

CREATE TABLE TABLE_FVT_TABLESPACE_ENCRYPT(F TEXT) TABLESPACE TABLESPACE_FVT_TABLESPACE_ENCRYPT;
INSERT INTO TABLE_FVT_TABLESPACE_ENCRYPT VALUES('HELLO WORLD!');

05.关闭加密数据访问。
当不需要再访问加密数据时,可以通过以下SQL命令关闭加密数据访问。一旦关闭,所有针对加密数据的访问都无法进行。

ALTER SYSTEM SET ENCRYPTION WALLET CLOSE IDENTIFIED BY 'gaussdb_123';

猜你喜欢

转载自blog.csdn.net/qq_42226855/article/details/109563343