暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

gbase 8a数据加密功能介绍

无涯有涯 2022-03-01
636

GBase 8a MPP Cluster 数据加密提供对数据库落地数据的软加密功能,用来满足用户的安全需求,提高系统的安全性。数据加密按照数据文件中的 DC 为最小单位进行,可以实现表级或者列级不同粒度的加密要求。数据库中所有加密数据都使用同一个密钥,系统启动时会自动读取已创建的密钥文件内容。数据使用密钥文件内容加解密后,密钥文件内容就不能再改变。

数据加密支持的操作如下:

    支持加密关键字encrypt建表;

    支持表级或者列级不同粒度的加密要求;

    支持表加密属性的查询;

    支持密钥证书管理包括密钥证书的创建、打开、关闭、口令修改、密钥转换操作;

    支持密钥类型转换,即从明文密钥转换到密文密钥,或从密文密钥转换到明文密钥:

        •明文密钥:无须用户口令,可随机生成也可手动输入;

        •密文密钥:须用户输入口令,根据口令对随机生成的密钥加密存储;

    支持查询当前密钥证书状态;

    支持行存列加密。


创建加密表和列

    用户通过建表命令create table和encrypt关键字创建带encrypt属性的表或者列,也可以通过create table like命令建表。但是不支持alter命令给表或列增加encrypts属性。

    示例:    

    创建加密表: create table t1 (a int, b varchar(5)) encrypt;

    创建加密列: create table t1 (a int, b varchar(5) encrypt);

    查看加密属性: show create table t1;


创建密钥证书

    密钥证书的管理需要管理员用户通过SQL方式处理。证书存放在config目录,集群环境下,gnode 与gcluster都会生成相同的密钥证书文件:

        gnode:$GBASE_BASE/config/encryption.crt

        gcluster:$GCLUSTER_BASE/config/encryption.crt

    创建证书: CREATE ENCRYPTION CERTIFICATE IDENTIFIED BY‘password’[CONTENT‘content_value’]

                            其中: password是密钥证书口令,content_value是密钥内容关键字,可选项,如果不指定该关键字,则创建时content_value由系统自动生成密钥;如果指定,则需要用户手动输入密钥,内容不做限制,最大支持128字节。

                            如果password为空,则创建明文密钥证书,不需要口令;如果password非空,则创建密文密钥证书,需要口令;密钥证书只有一份不能重复创建。

                  

打开和关闭证书

    打开证书: ALTER ENCRYPTION CERTIFICATE OPEN IDENTIFIED BY ‘password’   

    根据口令打开密文密钥证书,需要用户输入口令对证书解密获取加密密钥,才能对存储数据加密/解密。

    关闭证书: ALTER ENCRYPTION CERTIFICATE CLOSE;

    关闭后无法对数据加密/解密,会影响加密列的DML操作注:明文密钥不可关闭,需将明文密钥转为密文密钥才可以关闭。


显示证书状态

    SELECT * FROMINFORMATION_SCHEMA.ENCRYPTION_CERTIFICATE_STATUS;


修改证书口令

    ALTERENCRYPTION CERTIFICATE IDENTIFIED BY ‘old_pwd’ TO‘new_pwd’

    说明: 为了提高口令的安全性,可以对原证书口令进行修改,修改口令不会改变加密密钥,只是使用新口令对原有密钥重新加密生成新证书。


明文、密文密钥转换

    明文密钥转换为密文密钥:ALTERENCRYPTIONCERTIFICATE IDENTIFIED BY‘’ TO ‘password’

    密文密钥转换为明文密钥:ALTERENCRYPTIONCERTIFICATE IDENTIFIED BY ’ password’TO‘’

    说明:

        明文密钥转换为密文密钥,password 不能为空;

        明文加密转换为密文加密,即通过口令将明文密钥加密作为密文密钥证书,数据加密所用密钥不变。

        密文密钥转换为明文密钥,password 不能为空;

        密文密钥转换为明文密钥,即通过口令将密文密钥解密获取到的密钥作为明文密钥,数据加密所用密钥不变;


数据加密的集群配置

    密钥证书的口令管理,如果开启密码检测须设置password_format_option、password_min_length,如果未开启,则口令规则及长度不做限制;

    在gnode节点config目录下的配置文件增加encrypt_server_host(指向 gcluster的主机IP,可以多个,用逗号分隔),encrypt_server_port(指向 gcluster的server port,默认 5258)参数,用于密文加密情况下,集群gnode节点重启服务后主动向server端获取密钥数据;

最后修改时间:2022-03-01 19:14:21
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论