CREATE MASKING POLICY

    注意事项

    只有poladmin、sysadmin或初始用户能执行此操作。

    需要开启安全策略开关,即设置GUC参数enable_security_policy=on,脱敏策略才可以生效。具体设置请参考《安全加固指南》中“数据库配置>数据库安全管理策略>数据动态脱敏”章节。

    预置脱敏函数的执行效果及支持的数据类型请参考《特性描述》中“数据库安全 > 动态数据脱敏机制”章节。

    • masking_clause:

    • masking_function:

      maskall不是预置函数,硬编码在代码中,不支持\df展示。

      预置时脱敏方式如下:

      1. FILTER ON FILTER_TYPE(filter_value [,...]*)[,...]*

    参数说明

    • policy_name

      审计策略名称,需要唯一,不可重复。

      取值范围:字符串,要符合标识符的命名规范。

    • label_name

      资源标签名称。

    • masking_clause

    • policy_filter

      指出该脱敏策略对何种身份的用户生效,若为空表示对所用用户生效。

    • FILTER_TYPE

      描述策略过滤的条件类型,包括IP | APP | ROLES。

    • filter_value

      指具体过滤信息内容,例如具体的IP,具体的APP名称,具体的用户名。

    • ENABLE|DISABLE

    1. --创建dev_maskbob_mask用户。
    2. openGauss=# CREATE USER dev_mask PASSWORD 'dev@1234';
    3. openGauss=# CREATE USER bob_mask PASSWORD 'bob@1234';
    4. openGauss=# CREATE TABLE tb_for_masking(col1 text, col2 text, col3 text);
    5. --创建资源标签标记敏感列col1
    6. openGauss=# CREATE RESOURCE LABEL mask_lb1 ADD COLUMN(tb_for_masking.col1);
    7. openGauss=# CREATE RESOURCE LABEL mask_lb2 ADD COLUMN(tb_for_masking.col2);
    8. --对访问敏感列col1的操作创建脱敏策略
    9. openGauss=# CREATE MASKING POLICY maskpol1 maskall ON LABEL(mask_lb1);
    10. openGauss=# CREATE MASKING POLICY maskpol2 randommasking ON LABEL(mask_lb2) FILTER ON ROLES(dev_mask, bob_mask), APP(psql, gsql), IP('10.20.30.40', '127.0.0.0/24');

    相关链接

    DROP MASKING POLICY