Новые возможности ролевой модели СУБД 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
— новая роль с правом создания подписок для логической репликации.
Многократное назначение членства
Поддерживается многократное членство пользователей в одной и той же роли с различными привилегиями, предоставленными от разных праводателей. Ранее при новом назначении членства в роли предыдущая запись о назначении удалялась, даже если остальные параметры при назначении отличались.