К содержимому
NEOBRIDGE INSIGHTПо вопросамinfo@neobridge.kz
⌕
Технические модули

PostgreSQL Anonymizer: правила маскирования в схеме и разные режимы их применения

PostgreSQL Anonymizer — расширение PostgreSQL, которое маскирует или заменяет персональные и коммерчески чувствительные данные по правилам внутри схемы базы. Таблица поддержки датирует 3.x январём 2026 года; 4.x с январём 2027 года явно помечена WIP и не считается выпущенной.

Для кого

Разработчики приложений, которым предлагается задавать политику в схеме, и пользователи тестовых/аналитических сценариев. В примерах разработчик запускает CI на fake/random data, а аналитик сохраняет нужное значение показателя без имён игроков.

·25 источников·По описаниям проекта ↗
Концептуальная иллюстрация к обзору: PostgreSQL Anonymizer: правила маскирования в схеме и разные режимы их применения
Концептуальная иллюстрация · создана с помощью ИИ
01
КЛЮЧЕВЫЕ СВЕДЕНИЯ

Паспорт проекта

По первоисточникам
Тип
Технические модули
Задача
Описанное назначение — anonymization by design: разработчики приложения определяют правила маскирования непосредственно в схеме, где известна семантика модели…
Для кого
Разработчики приложений, которым предлагается задавать политику в схеме, и пользователи тестовых/аналитических сценариев.
Технологии
PostgreSQL / SQL
Что потребуется
Установка расширения требует superuser, затем его необходимо загрузить и создать в базе.
Основание
25 первоисточников
02
СУТЬ

За 30 секунд

01 / Зачем

Описанное назначение — anonymization by design: разработчики приложения определяют правила маскирования непосредственно в схеме, где известна семантика модели данных.

02 / Как

Одна политика может применяться как статическое изменение данных, скрытие значений для MASKED-ролей, анонимизированный dump, реплика, отдельное представление или обработка внешних таблиц.

03 / Результат

Выход зависит от режима: изменённые значения исходной базы; маскированная выдача роли или view; SQL dump; обновляемая логической репликацией копия.

03
ПОСЛЕДОВАТЕЛЬНОСТЬ

Как это работает

01

На входе

SQL

Схема, таблицы и роли PostgreSQL; правила DDL/security labels; исходные значения и параметры выбранной функции. Для /dump.sh отдельно передаются SQL dump и файл правил. Правила можно импортировать/экспортировать в jsonb, однако формат зависит от версии. Foreign Data Wrappers дают вход через внешние таблицы, в том числе пример CSV.

02

Механизм

Одна политика может применяться как статическое изменение данных, скрытие значений для MASKED-ролей, анонимизированный dump, реплика, отдельное представление или обработка внешних таблиц. Для преобразований описаны случайные/подставные значения, частичное скрытие и другие функции. detect() помогает находить колонки по словарю имён, но требует ручного просмотра модели.

03

Результат

SQL

Выход зависит от режима: изменённые значения исходной базы; маскированная выдача роли или view; SQL dump; обновляемая логической репликацией копия. Динамическая маска не меняет доступ к оригиналу для остальных ролей. Общего утверждения, что любой такой результат необратимо анонимен, нет: документация отдельно различает псевдонимизацию и анонимизацию.

04
ПОДРОБНОСТИ

Что важно понять

01

Техническое устройство

Security labels сохраняют политику рядом с объектами базы. MASKED-роль получает изменённую выдачу, а static-функции меняют хранимые данные. При Replica Masking логическая репликация передаёт оригинальные данные подписчику, и маски применяются там: канал нуждается в защите, журналы могут содержать оригинал, а привилегированные лица могут отключить обработку. Wrappers объявляют внешние таблицы и накладывают правила на их столбцы.

02

Для чего создано

Описанное назначение — anonymization by design: разработчики приложения определяют правила маскирования непосредственно в схеме, где известна семантика модели данных. Это цель проекта, без автоматического подтверждения правового соответствия или гарантии отсутствия утечек.

03

Сценарии использования

Документация показывает CI-тесты на подставных данных, аналитику с сохранением выбранных показателей, маскированные dumps, обновляемую реплику и обработку CSV через foreign table. /dump.sh принимает только plain SQL, тогда как обычный pg_dump от masked-роли допускает custom format. Это отдельные пути; ограничения одного не перенесены на другой.

04

Идея решения

Отделить определение маски от способа её применения: закрепить правила в схеме и выбирать режим выдачи, разрушительной замены, экспорта или репликации под задачу. Разные режимы имеют разные границы доступа и целостности, поэтому одна политика не превращает их в одинаковые по безопасности операции.

05

Какую задачу описывает источник

Источник прямо называет трудность поиска прямых и косвенных идентификаторов в модели и выбора способа скрытия. Также описана потребность иметь копию production-базы, которая одновременно маскирована и обновляется; это эксплуатационная задача, без доказанного рыночного спроса.

05
ГОТОВНОСТЬ К ПРОВЕРКЕ

Что известно из описания

Полнота описанияЗапуск не проверялся
МеханизмОписано
ТребованияОписано
ОграниченияОписано

Что потребуется

  • Установка расширения требует superuser, затем его необходимо загрузить и создать в базе.
  • Для Replica Masking требуется shared_preload_libraries, поскольку session_preload_libraries не читается apply workers.
  • Таблица для 3.x перечисляет PostgreSQL 14–18, RHEL 8/9/10, Debian 12/13 и Ubuntu 24.04; stable рекомендован для production, latest — для тестирования новых функций.
  • Для обычных masking-задач документация рекомендует выделенные роли с минимальными правами.

Что учитывать

  • Статическая обработка уничтожает исходные значения и блокирует переписываемые таблицы.
  • Правила таблиц не применяются автоматически к views и не наследуются партициями.
  • Возможны нарушения ограничений целостности.
  • detect() экспериментален и может пропускать идентификаторы.
  • Псевдонимизация сохраняет связь с оригиналом; noise при динамическом доступе уязвим к повторным запросам.
  • Selective Masking — тестовая beta, несовместимая с Sampling; параллельная статическая обработка неатомарна.
06
СМОТРИМ ГЛУБЖЕ

Комментарий NeoBridge

Общая справка

  • Динамическая маска — Изменённое представление значений при чтении, без обязательной замены оригинала.
  • Псевдонимизация — Замена идентификаторов, при которой сохраняется связь с исходными данными; это не обещание необратимой анонимности.
  • DDL — Описание структуры объектов базы данных.
  • SQL — Язык запросов к базам данных. С его помощью находят, изменяют и обрабатывают данные, хранящиеся в таблицах.

Что стоит уточнить

  • Какие документированные функции и beta-режимы входят в выбранный стабильный minor-релиз 3.x? Сохранённые документы смешивают stable/latest и не дают полной версионной привязки.
  • Как проверены скрытые идентификаторы, целостность и риск повторной идентификации конкретной схемы? detect() является подсказкой, а masking rules могут нарушать ограничения и оставлять связи.
  • Как изолированы привилегированные роли, replication channel, журналы и masking policy? В разных режимах оригинал остаётся доступен в разных местах.

Основания и справочные материалы

SQL ↗
↗
ОСНОВАНИЯ

Из первоисточников

25 ссылок

Редакционный обзор NeoBridge Insight по материалам источников ниже. Права на исходные тексты, код и изображения принадлежат их правообладателям. Условия использования указаны в первоисточниках.

Независимое тестирование проекта не проводилось.

← Вернуться к проектам Продолжить исследование ↗