Перейти к основному содержимому

Новые возможности ролевой модели СУБД Pangolin 7.1

примечание

В ядрах PostgreSQL 16 и 17 были внесены значимые изменения в ролевую модель, которые также включены в СУБД Pangolin 7.1.0.

CREATEROLE с ограничениями

Пользователи с атрибутом CREATEROLE теперь могут управлять только ролями, которые:

  • были созданы ими (только для удаления таких ролей);
  • для которых им предоставлено право ADMIN OPTION (для изменения атрибутов или управления членством).

Расширенные опции GRANT

Система управления правами (GRANT) получила расширенную поддержку опций:

  • GRANT ... WITH ADMIN OPTION — требуется обязательно для передачи роли другим пользователям;
  • GRANT WITH INHERIT — определяет, наследуется ли роль при входе в другую;
  • GRANT WITH ADMIN TRUE/FALSE — допустимая форма синтаксиса, наряду с GRANT WITH ADMIN OPTION;
  • GRANT <роль> TO <роль> SET — определяет, можно ли временно активировать роль через SET ROLE;
  • GRANT MAINTAIN — предоставляет право на обслуживание объектов без необходимости владения ими;
  • GRANT { SET | ALTER SYSTEM } ON PARAMETER — управляет параметрами конфигурации на уровне сеанса или всей СУБД. Используется для параметров с контекстом суперпользователя (context=superuser).

Опция MAINTAIN охватывает выполнение таких операций, как VACUUM, ANALYZE, REINDEX, REFRESH MATERIALIZED VIEW, CLUSTER и LOCK TABLE.

Предопределенные роли

Добавлены встроенные роли, упрощающие делегирование часто используемых привилегий:

  • pg_use_reserved_connections — разрешает подключение при исчерпании лимита соединений;
  • pg_maintain — предоставляет универсальные права на обслуживание всех объектов без необходимости использования GRANT;
  • pg_create_subscription — новая роль с правом создания подписок для логической репликации.

Многократное назначение членства

Поддерживается многократное членство пользователей в одной и той же роли с различными привилегиями, предоставленными от разных праводателей. Ранее при новом назначении членства в роли предыдущая запись о назначении удалялась, даже если остальные параметры при назначении отличались.