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




