如何查询PostgreSQL表中已设置的安全掩码标签?
查询PostgreSQL Anonymizer安全标签的方法
PostgreSQL的安全标签信息存储在系统视图 pg_seclabels 中,你可以通过这个视图快速查询已添加的Anonymizer掩码标签。
基础查询:查看所有Anonymizer相关的安全标签
执行以下SQL语句,能列出所有带有anon提供者的安全标签,包含对应的表、列和掩码规则:
SELECT n.nspname AS schema_name, c.relname AS table_name, a.attname AS column_name, s.label AS mask_rule FROM pg_seclabels s JOIN pg_class c ON s.objoid = c.oid JOIN pg_namespace n ON c.relnamespace = n.oid JOIN pg_attribute a ON s.objoid = a.attrelid AND s.objsubid = a.attnum WHERE s.provider = 'anon' AND c.relkind = 'r'; -- 仅筛选普通表
精准查询:指定表的安全标签
如果只需要查看特定表(比如你的Customer表)的掩码标签,可添加表名过滤条件:
SELECT a.attname AS column_name, s.label AS mask_rule FROM pg_seclabels s JOIN pg_class c ON s.objoid = c.oid JOIN pg_namespace n ON c.relnamespace = n.oid JOIN pg_attribute a ON s.objoid = a.attrelid AND s.objsubid = a.attnum WHERE s.provider = 'anon' AND c.relkind = 'r' AND n.nspname = 'public' -- 替换为你的模式名(如果不是public) AND c.relname = 'Customer';
字段说明
schema_name:表所在的模式名称table_name:目标表名称column_name:设置了掩码的列名称mask_rule:具体的掩码规则(比如你设置的MASKED WITH FUNCTION anon.fake_first_name())
内容的提问来源于stack exchange,提问作者Todd Drinkwater
相关产品推荐
相关产品推荐

