注意
本功能尚在小范围公测中,请注意评估功能可能带来的风险并谨慎使用。
前提条件
已创建库表。
目标库表为分片表,且已设置分片规则。设置分片规则的操作,请参见库表管理。
背景信息
DRDS支持字段级别的加解密,通过该功能,可以为您的库表字段进行加密,提高数据安全性。
开启字段加密后,DRDS根据用户配置的字段,将DML类型的SQL语句中对应的字段重写为加密内容后写入到底层数据中。对DQL类型的SQL,如果用户有解密权限,会根据字段解密被加密的字段内容。适用于需要对用户身份证、电话号码等敏感信息加密的场景。
使用限制
仅V5.1.20.0.4及以后版本创建的实例,支持字段加密功能。
仅支持字符串类型的字段进行加密。
开启、关闭或修改字段均对存量数据不生效,仅对新增数据生效。
只支持对表的字段进行加密。
注意事项
开启加密功能后,仅对增量数据进行加密。因此您需要自行处理数据库中原始的存量数据。
开启加密功能后,如果您执行的SQL语句含有加密字段,则存在如下限制:
注意
如果您执行的SQL语句不含有加密字段,则不影响SQL语句执行结果。
支持进行like 和等值查询,比如
name
是加密字段时,您可以执行如下操作:select id , name from student where student.name = 'xxx'; select id , name from student where 'xxx ='student.name ;
SQL语句中涉及加密的字段,只支持单表的查询,包括包含单表自身的子查询,比如 select name from (select name from student ) a ,加密字段的条件只能放到子查询语句中。
不支持join语句里含有加密字段。
不支持对加密字段进行函数计算。
不支持加密字段作为查询条件时不区分大小写功能。如果设置了不区分大小写功能,则加密后大小写对应的加密数据没有大小写对应关系,不区大小写功能将会失效。
加密字段不支持比较操作,如:大于、小于、ORDER BY、BETWEEN 等。
加密字段不支持计算操作,如:AVG、SUM 以及计算表达式。
加密字段只支持字符类型。
不支持udpate 加密字段A = 字段B 语法。
开启字段加密
在天翼云官网首页的顶部菜单栏,选择产品 > 数据库 > 关系型数据库 > 分布式关系型数据库,进入分布式关系型数据库产品页面。然后单击管理控制台,进入概览页面。
在左侧导航栏,选择DRDS > 实例管理,进入实例列表页面。然后在顶部菜单栏,选择区域和项目。
在实例列表中,找到目标实例,单击操作列的管理,进入实例基本信息页面。
单击schema管理,进入目标实例的Schema管理页面。
单击目标schema操作列的管理,然后单击库表管理,进入库表管理页面。
在库表列表中,找到目标库表,在操作选择更多 > 字段加密。
在字段加密对话框中,打开字段加密功能,配置如下参数。
参数 描述 字段名 选择加密列。
支持添加多个加密列、设置模糊查询列。
加密算法 加密的算法,目前支持AES。 密钥 设置密钥。
您也可以单击随机生成,获取自动生成的密钥。
注意
该密钥设置成功后,不允许修改,请妥善保存密钥。
单击确定。
如果您不再需要加密功能,只需在操作列选择更多 > 字段加密,然后在字段加密对话框中关闭字段加密功能即可。
如果您需要修改或删除加密的字段,只需在操作列选择更多 > 字段加密,然后在字段加密对话框中修改加密字段即可。
字段解密
当用户拥有加解密权限(DECRYPT权限)后,DRDS会自动解密被加密的字段,用户即可查看解密字段内容。添加权限的具体操作,请参见设置权限。