暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

GBase 8a Mpp之数据脱敏

原创 就叫这个名吧。 2022-09-21
693

**GBase 8a Mpp之数据脱敏

脱敏

Gbase8a MPP支持默认脱敏、随机脱敏、自定义脱敏、哈希脱敏和指定位置脱敏五种数据脱敏函数。动态数据脱敏不会真正改动表中存储的实际数据,只是在查询的时候应用该特性控制查询返回的数据,动态数据脱敏支持默认脱敏 default、随机脱敏 random、自定义脱敏partial 、哈希脱敏 sha 和指定位置脱敏 keymask 五种数据脱敏函数。

脱敏语法

MASKED WITH(FUNCTION = ‘TYPE (参数)’)

动态数据脱敏支持四种类型数据脱敏函数,如下:

1)默认脱敏default类型。这种类型没有参数。

MASKED WITH(FUNCTION = ‘DEFAULT。’)

2)随机脱敏random类型。

random(min,max)有两个参数标定随机范围,参数min的最小值为1,参数 max的最大值为1。。。

MASKED WITH(FUNCTION = ‘RANDOMd, 100)’)

3)自定义脱敏partial类型。

这种类型包含三个参数,partial (prefix, padding, suffix),参数详细

说明如下:

• prefix表示前缀保留显示字符数量;

• padding表示脱敏显示字符;

• suffix表示结尾保留显示字符数量。

MASKED WITH(FUNCTION = ‘PARTIAL(1,‘XXXX’,1)’)

4)哈希脱敏sha类型。

这个类型没有参数。

MASKED WITH(FUNCTION = ‘SHA()’)

5)自定义脱敏keymask类型。

keymask(substr,padding, pos)

masked with(function=’ keymask(〃@gbase〃,〃****〃,0)’)

参考示例

创建脱敏用户并赋予数据库权限

gbase> create user user1;

Query OK, 0 rows affected (Elapsed: 00:00:00.02)

gbase> grant all on *.*.* to user1;

Query OK, 0 rows affected (Elapsed: 00:00:00.02)

gbase> revoke super,unmask on *.*.* from user1;
Query OK, 0 rows affected (Elapsed: 00:00:00.02)

默认脱敏


gbase> CREATE TABLE t_m_default(name VARCHAR(10) MASKED

-> WITH(FUNCTION = ‘DEFAULT()’),b_date DATETIME MASKED

-> WITH(FUNCTION = ‘DEFAULT()’),age INT MASKED WITH(FUNCTION =‘DEFAULT()’));

Query OK, 0 rows affected (Elapsed: 00:00:00.90)

gbase> INSERT INTO t_m_default VALUES(‘Jieke’,‘1949-11-16 12:31:24.123000’,99);

Query OK, 1 row affected (Elapsed: 00:00:00.46)

gbase> SELECT * FROM t_m_default;

±------±---------------------------±-----+

| name  | b_date                     | age  |

±------±---------------------------±-----+

| Jieke | 1949-11-16 12:31:24.123000 |   99 |

±------±---------------------------±-----+

1 row in set (Elapsed: 00:00:00.08)

[gbase@node15 ~]$ gccli -uuser1;

GBase client 9.5.3.28.12d6ab4d. Copyright © 2004-2022, GBase.  All Rights Reserved.

gbase> use vc vc1;

Query OK, 0 rows affected (Elapsed: 00:00:00.00)

gbase> use test;

Query OK, 0 rows affected (Elapsed: 00:00:00.00)

切换脱敏用户查看脱敏后效果

gbase> SELECT * FROM t_m_default;

±-----±--------------------±-----+

| name | b_date              | age  |

±-----±--------------------±-----+

| xxxx | 1900-01-01 00:00:00 |    0 |

±-----±--------------------±-----+

1 row in set (Elapsed: 00:00:00.02)


随机脱敏

gbase> CREATE TABLE t_m_random(age INT MASKED

-> WITH(FUNCTION = ‘RANDOM(1,4)’));

Query OK, 0 rows affected (Elapsed: 00:00:01.42)

gbase> INSERT INTO t_m_random VALUES(29),(19);

Query OK, 2 rows affected (Elapsed: 00:00:00.56)

Records: 2  Duplicates: 0  Warnings: 0

gbase> SELECT * FROM t_m_random;

±-----+

| age  |

±-----+

|   29 |

|   19 |

±-----+

2 rows in set (Elapsed: 00:00:00.32)

[gbase@node15 ~]$ gccli -uuser1;

GBase client 9.5.3.28.12d6ab4d. Copyright © 2004-2022, GBase.  All Rights Reserved.

gbase> use vc vc1;

Query OK, 0 rows affected (Elapsed: 00:00:00.00)

gbase> use test;

Query OK, 0 rows affected (Elapsed: 00:00:00.00)

切换脱敏用户查看脱敏后效果

gbase> SELECT * FROM t_m_random;

±-----+

| age  |

±-----+

|    2 |

|    4 |

±-----+

2 rows in set (Elapsed: 00:00:00.10)


自定义脱敏

gbase> CREATE TABLE t_m_partial(context VARCHAR(255) MASKED

-> WITH(FUNCTION = ‘PARTIAL(3,“XXXX”,6)’));

Query OK, 0 rows affected (Elapsed: 00:00:01.12)

gbase> INSERT INTO t_m_partial VALUES(‘Construction in progress’),(‘happy’);

Query OK, 2 rows affected (Elapsed: 00:00:00.61)

Records: 2  Duplicates: 0  Warnings: 0

gbase> SELECT * FROM t_m_partial;

±-------------------------+

| context                  |

±-------------------------+

| Construction in progress |

| happy                    |

±-------------------------+

2 rows in set (Elapsed: 00:00:00.01)

[gbase@node15 ~]$ gccli -uuser1;

GBase client 9.5.3.28.12d6ab4d. Copyright © 2004-2022, GBase.  All Rights Reserved.

gbase> use vc vc1;

Query OK, 0 rows affected (Elapsed: 00:00:00.00)

gbase> use test;

Query OK, 0 rows affected (Elapsed: 00:00:00.00)

切换脱敏用户查看脱敏后效果

gbase> SELECT * FROM t_m_partial;

±--------------+

| context       |

±--------------+

| ConXXXXogress |

| XXXX          |

±--------------+
2 row in set (Elapsed: 00:00:00.02)


SHA脱敏

gbase> CREATE TABLE t_m_sha(context VARCHAR(255) MASKED WITH(FUNCTION =‘SHA()’));

Query OK, 0 rows affected (Elapsed: 00:00:00.91)

gbase> INSERT INTO t_m_sha VALUES(‘abc’);

Query OK, 1 row affected (Elapsed: 00:00:00.44)

gbase> SELECT * FROM t_m_sha;

±--------+

| context |

±--------+

| abc     |

±--------+

1 row in set (Elapsed: 00:00:00.02)

切换脱敏用户查看脱敏后效果

gbase> SELECT * FROM t_m_sha;

±-----------------------------------------+

| context                                  |

±-----------------------------------------+

| a9993e364706816aba3e25717850c26c9cd0d89d |

±-----------------------------------------+

1 row in set (Elapsed: 00:00:00.02)

最后修改时间:2022-09-21 18:28:43
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论