Обновление PostgreSQL с устранением уязвимости. Выпуск системы репликации pgcat
14 февраля 2020 года
Сформированы корректирующие обновления для всех поддерживаемых веток PostgreSQL: 12.2, 11.7, 10.12, 9.6.17, 9.5.21 и 9.4.26. Выпуск 9.4.26 является финальным - подготовка обновлений для ветки 9.4 прекращена. Обновления для ветки 9.5 будут формироваться до февраля 2021 г., 9.6 - до ноября 2021 года, 10 - до ноября 2022 года, 11 - до ноября 2023 года, 12 - до ноября 2024 года.
В новых версиях исправлено 75 ошибок и устранена уязвимость (CVE-2020-1720), вызванная отсутствием проверки авторизации при выполнении команды "ALTER ... DEPENDS ON EXTENSION". При определённых обстоятельствах уязвимость позволяет непривилегированному пользователю удалить любую функцию, процедуру, материализованное представление, индекс или триггер. Атака возможна если администратор установил любое расширение, а пользователь может выполнить команду CREATE или владельца расширения удастся убедить выполнить команду DROP EXTENSION.
Дополнительно можно отметить появление нового приложения pgcat, позволяющего реплицировать данные между несколькими серверами PostgreSQL. Программа поддерживает логическую репликацию через трансляцию и воспроизведение на другом хосте потока выполняемых на основном сервере SQL-команд, приводящих к изменению данных. Код написан на языке Go и распространяется под лицензией Apache 2.0. Основные отличия от встроенного механизма логической репликации:
- Поддержка любых типов целевых таблиц (представления, fdw (Foreign Data Wrapper), сегментированные таблицы, распределённые таблицы citus);
- Возможность переопределения имён таблиц (репликация из одной таблицы в другую);
- Поддержка двунаправленной репликации через передачу только локальных изменений с игнорированием репликаций, поступающих извне;
- Наличие системы разрешения конфликтов на основе алгоритма LWW (last-writer-win);
- Возможность сохранения сведений о ходе репликации и неприменённых репликах в отдельную таблицу, которую можно использовать для восстановления после возобновления работы временно недоступного принимающего узла.
Источники
[править]
Любой участник может оформить статью: добавить иллюстрации, викифицировать, заполнить шаблоны и добавить категории.
Любой редактор может снять этот шаблон после оформления и проверки.
Комментарии[править]
Если вы хотите сообщить о проблеме в статье (например, фактическая ошибка и т. д.), пожалуйста, используйте обычную страницу обсуждения.
Комментарии на этой странице могут не соответствовать политике нейтральной точки зрения, однако, пожалуйста, придерживайтесь темы и попытайтесь избежать брани, оскорбительных или подстрекательных комментариев. Попробуйте написать такие комментарии, которые заставят задуматься, будут проницательными или спорными. Цивилизованная дискуссия и вежливый спор делают страницу комментариев дружелюбным местом. Пожалуйста, подумайте об этом.
Несколько советов по оформлению реплик:
- Новые темы начинайте, пожалуйста, снизу.
- Используйте символ звёздочки «*» в начале строки для начала новой темы. Далее пишите свой текст.
- Для ответа в начале строки укажите на одну звёздочку больше, чем в предыдущей реплике.
- Пожалуйста, подписывайте все свои сообщения, используя четыре тильды (~~~~). При предварительном просмотре и сохранении они будут автоматически заменены на ваше имя и дату.
Обращаем ваше внимание, что комментарии не предназначены для размещения ссылок на внешние ресурсы не по теме статьи, которые могут быть удалены или скрыты любым участником. Тем не менее, на странице комментариев вы можете сообщить о статьях в СМИ, которые ссылаются на эту заметку, а также о её обсуждении на сторонних ресурсах.