Предопределенные роли
Эта страница переведена при помощи нейросети GigaChat.
PostgreSQL предоставляет набор предопределенных ролей, которые дают доступ к определенным часто востребованным привилегированным возможностям и информации. Администраторы (включая роли с привилегией CREATEROLE) могут выдавать (GRANT) эти роли пользователям и/или другим ролям в своей среде, предоставляя им доступ к указанным возможностям и данным. Например:
GRANT pg_signal_backend TO admin_user;
При выдаче этих ролей следует проявлять осторожность: убедитесь, что они используются только там, где это необходимо, и что получатели понимают, что эти роли предоставляют доступ к привилегированной информации.
Ниже приведено описание предопределенных ролей. Обратите внимание, что конкретные права для каждой роли могут изменяться в будущих версиях по мере добавления новых возможностей. Администраторам рекомендуется отслеживать изменения в примечаниях к релизам.
pg_checkpoint
Позволяет выполнять команду CHECKPOINT.
pg_create_subscription
Позволяет пользователям с привилегией CREATE на базе данных выполнять команду CREATE SUBSCRIPTION.
pg_database_owner
Всегда имеет ровно одного неявного участника: текущего владельца базы данных. Невозможно выдать членство в этой роли, и ни одна роль не может получить членство в pg_database_owner. Однако, как и любая другая роль, она может владеть объектами и получать права доступа. Следовательно, если pg_database_owner имеет права в шаблонной базе данных, каждый владелец базы данных, созданной из этого шаблона, унаследует эти права. Изначально эта роль владеет схемой public, поэтому каждый владелец базы данных управляет локальным использованием этой схемы.
pg_maintain
Позволяет выполнять команды VACUUM, ANALYZE, CLUSTER, REFRESH MATERIALIZED VIEW, REINDEX и LOCK TABLE для всех отношений, как если бы роль имела права MAINTAIN на эти объекты.
pg_monitor
pg_read_all_settings
pg_read_all_stats
pg_stat_scan_tables
Эти роли предназначены для упрощения настройки роли мониторинга сервера БД. Они предоставляют набор общих привилегий для чтения различных полезных настроек конфигурации, статистики и другой системной информации, обычно доступной только суперпользователям.
pg_monitor — позволяет читать/выполнять различные мониторинговые представления и функции. Эта роль является участником pg_read_all_settings, pg_read_all_stats и pg_stat_scan_tables.
pg_read_all_settings — позволяет читать все переменные конфигурации, даже те, которые обычно видны только суперпользователям.
pg_read_all_stats — позволяет читать все представления pg_stat_* и использовать расширения, связанные со статистикой, даже те, которые обычно доступны только суперпользователям.
pg_stat_scan_tables — позволяет выполнять мониторинговые функции, которые могут устанавливать блокировки ACCESS SHARE на таблицы, потенциально на длительное время (например, pgrowlocks(text) из расширения pgrowlocks).
pg_read_all_data
pg_write_all_data
pg_read_all_data — позволяет читать все данные (таблицы, представления, последовательности), как если бы роль имела права SELECT на эти объекты и USAGE на все схемы. Эта роль не обходит политики безопасности на уровне строк (RLS). Если используется RLS, администратор может захотеть установить флаг BYPASSRLS для ролей, которым выдана эта роль.
pg_write_all_data — позволяет записывать все данные (таблицы, представления, последовательности), как если бы роль имела права INSERT, UPDATE и DELETE на эти объекты и USAGE на все схемы. Эта роль не обходит политики безопасности на уровне строк (RLS). Если используется RLS, администратор может захотеть установить флаг BYPASSRLS для ролей, которым выдана эта роль.
pg_read_server_files
pg_write_server_files
pg_execute_server_program
Эти роли предназначены для предоставления доверенным, но не суперпользовательским ролям возможности доступа к файлам и запуска программ на сервере БД от имени пользователя, под которым работает СУБД. Они обходят все проверки прав на уровне базы данных при прямом доступе к файлам и могут быть использованы для получения доступа уровня суперпользователя. Поэтому при выдаче этих ролей следует проявлять особую осторожность.
pg_read_server_files — позволяет читать файлы из любого места на сервере, доступного базе данных, с помощью COPY и других функций работы с файлами.
pg_write_server_files — позволяет записывать файлы в любое место на сервере, доступное базе данных, с помощью COPY и других функций работы с файлами.
pg_execute_server_program — позволяет запускать программы на сервере БД от имени пользователя, под которым работает СУБД, с помощью COPY и других функций, поддерживающих выполнение серверных программ.
pg_signal_autovacuum_worker
Позволяет посылать сигналы рабочим процессам autovacuum для отмены текущей операции VACUUM таблицы или завершения ее сессии.
pg_signal_backend
Позволяет посылать сигналы другому бэкенду для отмены запроса или завершения его сессии. Обратите внимание: эта роль не позволяет сигнализировать бэкендам, принадлежащим суперпользователю.
pg_use_reserved_connections
Позволяет использовать слоты соединений, зарезервированные через параметр reserved_connections.