CREATE MASKING POLICY
功能描述
创建脱敏策略。
注意事项
只有poladmin,sysadmin或初始用户能执行此操作。
需要开启安全策略开关,即设置GUC参数enable_security_policy=on,脱敏策略才可以生效。
语法格式
1 2 3 |
CREATE MASKING POLICY policy_name masking_clause[, ...]* policy_filter [ policy_filter_clause ][ENABLE | DISABLE]; |
- policy_filter_clause:
1
FILTER ON { FILTER_TYPE ( filter_value [, ...]) } [, ...]
- FILTER_TYPE:
1
IP | APP | ROLES
参数说明
- policy_name
审计策略名称,需要唯一,不可重复。
取值范围:字符串,要符合标识符命名规范。
- label_name
资源标签名称。
- masking_clause
指出使用何种脱敏函数对被label_name标签标记的数据库资源进行脱敏,支持用schema.function的方式指定脱敏函数。
- policy_filter
指出该脱敏策略对何种身份的用户生效,若为空表示对所有用户生效。
- FILTER_TYPE
描述策略过滤的条件类型,包括IP | APP | ROLES。
- filter_value
指具体过滤信息内容,例如具体的IP,具体的APP名称,具体的用户名。
- ENABLE|DISABLE
可以打开或关闭脱敏策略。若不指定ENABLE|DISABLE,语句默认为ENABLE。
示例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
--创建dev_mask和bob_mask用户。 openGauss=# CREATE USER dev_mask PASSWORD '********'; openGauss=# CREATE USER bob_mask PASSWORD '********'; --创建一个表tb_for_masking。 openGauss=# CREATE TABLE tb_for_masking(col1 text, col2 text, col3 text); --创建资源标签标记敏感列col1。 openGauss=# CREATE RESOURCE LABEL mask_lb1 ADD COLUMN(tb_for_masking.col1); --创建资源标签标记敏感列col2。 openGauss=# CREATE RESOURCE LABEL mask_lb2 ADD COLUMN(tb_for_masking.col2); --对访问敏感列col1的操作创建脱敏策略。 openGauss=# CREATE MASKING POLICY maskpol1 maskall ON LABEL(mask_lb1); --创建仅对用户dev_mask和bob_mask,客户端工具为gsql,IP地址为'10.20.30.40', '127.0.0.0/24'场景下生效的脱敏策略。 openGauss=# CREATE MASKING POLICY maskpol2 randommasking ON LABEL(mask_lb2) FILTER ON ROLES(dev_mask, bob_mask), APP(gsql), IP('10.20.30.40', '127.0.0.0/24'); --删除脱敏策略。 openGauss=# DROP MASKING POLICY maskpol1, maskpol2; --删除资源标签。 openGauss=# DROP RESOURCE LABEL mask_lb1, mask_lb2; --删除表tb_for_masking。 openGauss=# DROP TABLE tb_for_masking; --删除用户dev_mask和bob_mask。 openGauss=# DROP USER dev_mask, bob_mask; |