8
Динамическое изменение
Работает для ролей, помеченных как недоверенные
Обращение к таблице подменяется на обращение
к представлению
anon.sourceschema — схема исходных данных
anon.maskschema — схема анонимизирующих представлений
Ограничения и особенности
поддержка только одной схемы
необходимость каскадного удаления таблиц
запрет прямого изменения типа данных
возможное снижение производительности
Динамическое маскирование работает для ролей с установленной
меткой безопасности MASKED (недоверенных ролей).
В схеме, указанной в параметре anon.maskschema, создаются
представления, одноименные с анонимизируемыми таблицами из
схемы anon.sourceschema и изменяющие данные согласно
установленным правилам. При этом для недоверенных пользователей
путь поиска изменяется таким образом, что при указании целевой
таблицы запрос перенаправляется к маскирующему представлению.
У динамического маскирования есть ряд особенностей и ограничений:
●
Чтобы удалить исходную замаскированную таблицу, для нее нужно
выполнять DROP … CASCADE, что позволяет сразу удалить
и зависящее от нее маскирующее представление.
●
Система работает только с одной схемой, указанной в параметре
anon.sourceschema (по умолчанию — public).
●
Когда активировано динамическое маскирование, запрещено
изменять тип данных столбца, если на нем есть маска. Чтобы
изменить такой столбец, маскирование нужно временно отключить.
●
Динамическое маскирование может медленно работать
с некоторыми запросами, например соединяющими таблицы по
ключу, который маскируется хешированием.