20.5. Предопределённые роли
В Postgres Pro имеется набор предопределённых ролей, которые дают доступ к некоторым часто востребованным, но не общедоступным функциям и данным. Администраторы могут назначать (GRANT) эти роли пользователям и/или ролям в своей среде, таким образом открывая этим пользователям доступ к указанной функциональности и информации.
Имеющиеся предопределённые роли описаны в Таблице 20.1. Заметьте, что конкретные разрешения для каждой из предопределённых ролей в будущем могут изменяться по мере добавления дополнительной функциональности. Администраторы должны следить за этими изменениями, просматривая замечания к выпускам.
Таблица 20.1. Предопределённые роли
Роль | Разрешаемый доступ |
---|---|
pg_read_all_settings | Читать все конфигурационные переменные, даже те, что обычно видны только суперпользователям. |
pg_read_all_stats | Читать все представления pg_stat_* и использовать различные расширения, связанные со статистикой, даже те, что обычно видны только суперпользователям. |
pg_stat_scan_tables | Выполнять функции мониторинга, которые могут устанавливать блокировки ACCESS SHARE в таблицах, возможно, на длительное время. |
pg_monitor | Читать/выполнять различные представления и функции для мониторинга. Эта роль включена в роли pg_read_all_settings , pg_read_all_stats и pg_stat_scan_tables . |
pg_signal_backend | Передавать другим обслуживающим процессам сигналы для отмены запроса или завершения сеанса. |
Роли pg_monitor
, pg_read_all_settings
, pg_read_all_stats
и pg_stat_scan_tables
созданы для того, чтобы администраторы могли легко настроить роль для мониторинга сервера БД. Эти роли наделяют своих членов набором общих прав, позволяющих читать различные полезные параметры конфигурации, статистику и другую системную информацию, что обычно доступно только суперпользователям.
Роль pg_signal_backend
предназначена для того, чтобы администраторы могли давать доверенным, но не имеющим прав суперпользователя ролям право посылать сигналы другим обслуживающим процессам. В настоящее время эта роль позволяет передавать сигналы для отмены запроса, выполняющегося в другом процессе, или для завершения сеанса. Однако пользователь, включённый в эту роль, не может отправлять сигналы процессам, принадлежащим суперпользователям. См. Подраздел 9.26.2.
Распределяя эти роли, следует проявлять осторожность, чтобы они использовались только для целей мониторинга.
Администраторы могут давать пользователям доступ к этим ролям, используя команду GRANT. Например:
GRANT pg_signal_backend TO admin_user;