Запрос столбцов, к которым применено маскирование данных

Я создал политику маскирования для данных PII. Затем я применил его к таблице так:

CREATE TABLE EXAMPLE.EXAMPLE_TABLE 
(ID INT,
LAST_NAME STRING,
PHONE_NUMBER INT);

ALTER TABLE EXAMPLE.EXAMPLE_TABLE MODIFY COLUMN LAST_NAME SET MASKING POLICY PUBLIC.PII_MASK_STRING;
ALTER TABLE EXAMPLE.EXAMPLE_TABLE MODIFY COLUMN PHONE_NUMBER SET MASKING POLICY PUBLIC.PII_MASK_NUMERIC;

Теперь я хочу иметь возможность перепроектировать такой сценарий DDL с помощью ALTER TABLE... SET MASKING POLICY включены.

Есть ли способ запросить список столбцов, к которым применены политики маскирования (и какая маска используется)?

EDIT: в этом случае пользователь владеет таблицей, но не политикой маскирования. какие разрешения требуются для запроса этой информации?

2 ответа

Решение

Таблица-функция информационной схемы POLICY_REFERENCES содержит некоторую интересную информацию в этом случае, подробнее здесь: https://docs.snowflake.com/en/sql-reference/functions/policy_references.html

Если этого недостаточно, вы можете запросить все политики со всеми таблицами и всеми столбцами, если объедините приведенный выше запрос с SHOW MASKING POLICIES; и RESULT_SCAN()- функция. RESULT_SCAN() позволяет запрашивать результаты SHOW MASKING POLICIES; (https://docs.snowflake.com/en/sql-reference/functions/result_scan.html)

Следствие: вы получаете все названия политик, и для каждой из них вы можете вызвать POLICY_REFERENCES().

По желанию поставщика можно использовать партнерское решение Snowflake для автоматизации политик маскирования PII для динамического маскирования данных с помощью Immuta. Существует демо - видео здесь, если вы найдете его полезным.

Полное раскрытие информации: я работаю в своей Immuta, и моя команда работает над контентом для инженеров по данным.

Другие вопросы по тегам