Запрос столбцов, к которым применено маскирование данных
Я создал политику маскирования для данных 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, и моя команда работает над контентом для инженеров по данным.