概述
由于敏感数据一直是数据库安全中最重要的一部分, 因此对于敏感数据的适当脱敏是很有必要的。 GBase 8a 提供动态数据脱敏的新功能供不同角色使用。
- 使得开发人员或者数据库管理员能够有效控制数据库中敏感数据的暴露程度,并且在数据库层面生成数据,这大大简化了数据库应用层的安全设计和编码。
- 使得用户可以通过 sql 语法的形式,给需要进行数据脱敏的字段添加脱敏属性,通过用户权限控制,决定是否对有查询要求的用户暴露原始数据。
运行环境
本功能为 GBase 8a 子功能模块。
运行环境参考 GBase 8a 或集群各版本运行环境。
脱敏功能
动态数据脱敏并不会真正改动表中存储的实际数据,只是在查询的时候应用该特性控制查询返回的数据。
动态数据脱敏是否启用受当前用户权限影响,拥有 unmask 权限的用户不受脱敏规则影响可以访问实际数据,没有 unmask 权限的用户受脱敏规则影响只能访问到脱敏后的数据。
脱敏只对投影列有效。
以下将内容详细介绍相关脱敏功能:
- 语法格式
- 函数介绍
- 相关属性
- 投影列函数脱敏说明
- 示例
语法格式
MASKED WITH(FUNCTION = ‗TYPE(参数)‘) |
动态数据脱敏支持四种参数 TYPE 数据脱敏函数, 如下:
1. 默认脱敏 default;
2. 随机脱敏 random;
3. 自定义脱敏 partial;
4. 哈希脱敏 sha。
1. default 类型。
这种类型没有参数。
MASKED WITH(FUNCTION = ‗DEFAULT()‘) |
2. random 类型。
random(min,max)有两个参数标定随机范围,最小值(1)和最大值(100)。
MASKED WITH(FUNCTION = ‗RANDOM(1,100)‘) |
3. partial 自定义类型。
这种类型包含三个参数, partial(prefix, padding, suffix),参数详细如下:
- prefix 表示前缀保留显示字符数量;
- padding 表示脱敏显示字符;
- suffix 表示结尾保留显示字符数量。
MASKED WITH(FUNCTION = ‗PARTIAL(1,‘XXXX‘,1)‘) |
sha 类型。
这个类型没有参数。
MASKED WITH(FUNCTION = ‗SHA()‘) |
函数介绍
默认脱敏函数
默认脱敏函数, 是针对基本类型的数据列进行脱敏的。
1. 若数据类型包含 date、 datetime 和 time。
- date 会以“ 1900-01-01”显示,
- datetime 会以―1900-01-01 00:00:00‖显示,
- time 会以“ 00:00:00”显示;
2. 若数据类型是整型、浮点型和 decimal。
- 整型和浮点型会显示 0,
- decimal 会显示为 0.000..., 带有结果小数位(定义的类型或者评估的类型)个数 0;