云数据库 GaussDB-CREATE MASKING POLICY:示例

时间:2025-02-12 15:06:01

示例

 1 2 3 4 5 6 7 8 910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
--创建dev_mask和bob_mask用户。gaussdb=# CREATE USER dev_mask PASSWORD '********';gaussdb=# CREATE USER bob_mask PASSWORD '********';--创建一个表tb_for_masking。gaussdb=# CREATE TABLE tb_for_masking(idx int, col1 text, col2 text, col3 text, col4 text, col5 text, col6 text, col7 text,col8 text);gaussdb=# INSERT INTO tb_for_masking VALUES(1, '9876543210', 'usr321usr', 'abc@huawei.com', 'abc@huawei.com', '1234-4567-7890-0123', 'abcdef 123456 ui 323 jsfd321 j3k2l3', '4880-9898-4545-2525', 'this is a llt case');gaussdb=# INSERT INTO tb_for_masking VALUES(2, '0123456789', 'lltc123llt', 'abc@gmail.com', 'abc@gmail.com', '9876-5432-1012-3456', '1234 abcd ef 56 gh78ijk90lm', '4856-7654-1234-9865','this,is.a!LLT?case');--创建资源标签标记敏感列。gaussdb=# CREATE RESOURCE LABEL mask_lb1 ADD COLUMN(tb_for_masking.col1);gaussdb=# CREATE RESOURCE LABEL mask_lb2 ADD COLUMN(tb_for_masking.col2);gaussdb=# CREATE RESOURCE LABEL mask_lb3 ADD COLUMN(tb_for_masking.col3);gaussdb=# CREATE RESOURCE LABEL mask_lb4 ADD COLUMN(tb_for_masking.col4);gaussdb=# CREATE RESOURCE LABEL mask_lb5 ADD COLUMN(tb_for_masking.col5);gaussdb=# CREATE RESOURCE LABEL mask_lb6 ADD COLUMN(tb_for_masking.col6);gaussdb=# CREATE RESOURCE LABEL mask_lb7 ADD COLUMN(tb_for_masking.col7);gaussdb=# CREATE RESOURCE LABEL mask_lb8 ADD COLUMN(tb_for_masking.col8);--创建脱敏策略。gaussdb=# CREATE MASKING POLICY maskpol1 maskall ON LABEL(mask_lb1);gaussdb=# CREATE MASKING POLICY maskpol2 alldigitsmasking ON LABEL(mask_lb2);gaussdb=# CREATE MASKING POLICY maskpol3 basicemailmasking ON LABEL(mask_lb3);gaussdb=# CREATE MASKING POLICY maskpol4 fullemailmasking ON LABEL(mask_lb4);gaussdb=# CREATE MASKING POLICY maskpol5 creditcardmasking ON LABEL(mask_lb5);gaussdb=# CREATE MASKING POLICY maskpol6 shufflemasking ON LABEL(mask_lb6);gaussdb=# CREATE MASKING POLICY maskpol7 regexpmasking('[\d+]','*',2, 9) ON LABEL(mask_lb7);--创建仅对用户dev_mask和bob_mask,客户端工具为gsql,IP地址为'10.20.30.40', '127.0.0.0/24'场景下生效的脱敏策略。gaussdb=# CREATE MASKING POLICY maskpol8 randommasking ON LABEL(mask_lb8) FILTER ON ROLES(dev_mask, bob_mask), APP(gsql), IP('10.20.30.40', '127.0.0.0/24');--查看脱敏策略生效。gaussdb=# SELECT * FROM tb_for_masking; idx |    col1    |    col2    |      col3      |      col4      |        col5         |                col6                 |        col7         |        col8-----+------------+------------+----------------+----------------+---------------------+-------------------------------------+---------------------+--------------------   1 | xxxxxxxxxx | usr000usr  | xxx@huawei.com | xxx@xxxxxx.com | xxxx-xxxx-xxxx-0123 |   s 2iju1bcjk243df333d61l 22 53ef3a | 48**-****-*545-2525 | this is a llt case   2 | xxxxxxxxxx | lltc000llt | xxx@gmail.com  | xxx@xxxxx.com  | xxxx-xxxx-xxxx-3456 | j 71fem0l286dbia543 g k9 ch         | 48**-****-*234-9865 | this,is.a!LLT?case(2 rows)--使用gsql工具,IP地址为'10.20.30.40',用户dev_mask查看tb_for_masking。gaussdb=# GRANT ALL PRIVILEGES TO dev_mask;gaussdb=# GRANT ALL PRIVILEGES TO bob_mask;gaussdb=# SET role dev_mask PASSWORD '********';--使用maskpol8脱敏,结果随机,每次不同。gaussdb=# SELECT col8 FROM tb_for_masking;        col8-------------------- 9f1425b3835cc30d99 9585b4ea8ea8ddcc5b(2 rows)gaussdb=# SET role bob_mask PASSWORD '********';gaussdb=# SELECT col8 FROM tb_for_masking;        col8-------------------- f29ef3a0769a1f417c 806aa46409482d838f(2 rows)--删除脱敏策略。gaussdb=# DROP MASKING POLICY maskpol1, maskpol2, maskpol3, maskpol4, maskpol5, maskpol6, maskpol7, maskpol8;--删除资源标签。gaussdb=# DROP RESOURCE LABEL mask_lb1, mask_lb2, mask_lb3, mask_lb4, mask_lb5, mask_lb6, mask_lb7, mask_lb8;--删除表tb_for_masking。gaussdb=# DROP TABLE tb_for_masking;--删除用户dev_mask和bob_mask。gaussdb=# DROP USER dev_mask, bob_mask;
support.huaweicloud.com/distributed-devg-v3-gaussdb/gaussdb-12-0525.html