由于敏感数据是数据库安全中最重要的一部分,因此对于敏感数据的适当脱敏是很有必要的。GBase 8a MPP Cluster 提供动态数据脱敏功能供不同角色使用,以满足不同需求。
使得开发人员或者数据库管理员能够有效控制数据库中敏感数据的暴露程度,并且在数据库层面生成脱敏数据,大大简化了业务应用层的安全设计和编码。
使得用户可以通过 SQL 语法的形式,给需要进行数据脱敏的字段添加脱敏属性,并通过用户权限控制,决定是否对有查询要求的用户暴露原始数据。
动态数据脱敏并不会真正改动表中存储的实际数据,只是在查询的时候应用该特性控制查询返回的数据。动态数据脱敏是否启用受当前用户权限影响,super 用户和拥有 unmask 权限的用户不受脱敏规则影响可以访问实际数据,没有 unmask 权限的用户受脱敏规则影响只能访问到脱敏后的数据。脱敏只对投影列有效。
语法格式
MASKED WITH(FUNCTION = ‘TYPE(参数)’)
动态数据脱敏支持四种类型数据脱敏函数,如下:
- 默认脱敏 default 类型。
这种类型没有参数。
MASKED WITH(FUNCTION = ‘DEFAULT()’) - 随机脱敏 random 类型。
random(min,max)有两个参数标定随机范围,参数 min 的最小值为 1,参数 max
的最大值为 100。
MASKED WITH(FUNCTION = ‘RANDOM(1,100)’) - 自定义脱敏 partial 类型。
这种类型包含三个参数,partial(prefix, padding, suffix),参数详细说明如下:
prefix 表示前缀保留显示字符数量;
padding 表示脱敏显示字符;
suffix 表示结尾保留显示字符数量。
MASKED WITH(FUNCTION = ‘PARTIAL(1,‘XXXX’,1)’) - 哈希脱敏 sha 类型。
这个类型没有参数。
MASKED WITH(FUNCTION = ‘SHA()’)