hhdb数据库介绍(10-44)
安全
数据加密
管理平台支持给数据配置加密规则,加密规则生效后,底层存储节点实际保存的是加密数据。这时通过计算节点层面访问数据仍是解密后的数据,即是否加密对计算节点层面是透明的。
添加加密规则
(一)功能入口:“安全->数据加密->添加规则”
添加加密规则页面顶部,显示加密规则需要参照的约束条件。开始使用加密规则前,请首先阅读该部分。
注意
① 当前只支持字符类型的字段加密;
② 建表时需要为加密字段分配足够的长度;
③ 在表创建后添加加密规则,需要执行drop/truncate操作才能使得加密规则生效;
④ 若表字段匹配了已经配置的加密规则,但字段不是字符类型,可能会导致数据插入失败。
(二)添加加密规则
- 逻辑库:下拉多选框,一次可以选择多个逻辑库。点击全部选择后,选中所有逻辑库选项。
注意
这里全部选择和右侧“全部(含新增项)”含义不同。
- “全部(含新增项)”勾选框:勾选右侧“全部(含新增项)”,会选中逻辑库下拉框中所有逻辑库,并且后续新增的所有逻辑库也会被包含在此规则内。
注意
逻辑库勾选右侧“全部(含新增项)”将会联动勾选表信息右侧“全部(含新增项)”勾选框。
-
表信息:根据勾选的逻辑库,下拉多选框显示所选中库下所有表。勾选右侧“全部(含新增项)”,会选中表信息下拉框中所有表,并且后续该逻辑库下新增的所有表也会被包含在此规则内。
-
加密列:输入需要加密表对应的列名,用英文逗号分隔。
-
列名匹配规则:列名全匹配、列名前缀匹配、列名后缀匹配,下拉框单选。
注意
前缀和后缀匹配规则时均需要保证字段名称除了匹配字符以外还有其他内容才算前缀、后缀匹配。如果设置加密列c1binary、前缀匹配,则需要表中字段包含且超过c1binary,如c1binaryabc*。如果表中字段刚好也是c1binary,则不能匹配成功。
-
加密方式:国密SM4、AES,下拉框单选。
-
输入密钥:国密SM4加密方式,最多可以输入16位密钥;AES加密方式最多可以输入4096位密钥。
-
十六进制密钥:若勾选了十六进制密钥,国密SM4加密方式,最多可以输入32位密钥;AES加密方式最多可以输入4096位密钥。
-
加密条件:选填,可以通过填写WHERE条件之后的表达式(例如id>10)实现行级别的加密。
Note:
加密条件中的列不能是加密列,如加密列有a,加密条件不能包含a
-
是否添加例外表:当勾选了“全部(含新增项)”,下方显示此项,否则不显示。对于例外库、例外表,不受添加的加密规则影响。
-
例外库对象:可多选,表示所选逻辑库不会生效。
-
例外表对象:可多选,表示所选表不会生效。勾选了例外库后,例外表下拉框将只显示除了例外库下的其他的表。
-
点击保存时,将检测当前配置的加密规则是否与列表中已经存在的加密规则冲突。如果某张表已经有规则a1varchar加密列、列名全匹配、SM4加密方式:
再次添加规则:a1var加密列、列名前缀匹配;或者char加密列、列名后缀匹配;或者a1varchar加密列、列名全匹配,但选择AES加密方式,均会提示加密规则冲突。
配置好加密规则后,插入数据,计算节点层面访问数据:
底层存储节点访问数据:
注意
若某张表中同一个字段出现列名全匹配、列名前缀匹配、列名后缀匹配三个加密规则,则以“列名全匹配>列名前缀匹配>列名后缀匹配”的原则进行加解密处理。当规则优先级一样时,使用先创建的一个规则进行加解密。
安装SM4插件
使用加密功能的存储节点均需要安装SM4插件。平台在保存加密规则的时候自动检测,如果没有安装,会自动安装插件。
-
添加、编辑加密规则或者进入加密规则列表页,将触发检测是否安装SM4插件。
-
安装成功,提示“恭喜您!XX个存储节点实例安装国密SM4插件安装成功”。
-
安装失败将给出提示,同时加密规则列表页上方将显示红色提示信息。
-
实例级别存储节点,如果部分节点没有安装sm4插件,操作数据提示“No database selected”
- SM4插件udf_sm4.so在平台程序bin目录下。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了