21.5. 默认角色

PostgreSQL 提供了一组默认角色,这些角色提供对某些通常需要的特权功能和信息的访问。Management 员可以将这些角色授予用户和/或环境中的其他角色,使这些用户可以访问指定的功能和信息。

默认角色在Table 21.1中描述。请注意,随着其他功能的添加,将来每个默认角色的特定权限可能会更改。Management 员应监视发行说明中的更改。

表 21.1 默认角色

Role Allowed Access
pg_read_all_settings 读取所有配置变量,甚至通常只对超级用户可见的变量。
pg_read_all_stats 阅读所有 pg_stat_ *视图,并使用各种与统计信息有关的扩展,甚至那些通常仅对超级用户可见的扩展。
pg_stat_scan_tables 执行监视功能,这些功能可能长时间锁定表ACCESS SHARE
pg_monitor 读取/执行各种监视视图和功能。该角色是pg_read_all_settingspg_read_all_statspg_stat_scan_tables的成员。
pg_signal_backend 发 signal 通知另一个后端取消查询或终止其会话。

pg_monitorpg_read_all_settingspg_read_all_statspg_stat_scan_tables角色旨在使 Management 员可以轻松地配置角色,以监视数据库服务器。它们授予一组通用特权,允许角色读取各种有用的配置设置,统计信息和其他通常限于超级用户使用的系统信息。

pg_signal_backend角色旨在允许 Management 员启用受信任的但非超级用户角色,以将 signal 发送到其他后端。当前,此角色可发送 signal,以取消另一个后端上的查询或终止其会话。但是,被授予此角色的用户无法将 signal 发送到超级用户拥有的后端。参见Section 9.26.2

授予这些角色时应格外小心,以确保仅将其用于执行所需监视的位置。

Management 员可以使用GRANT命令向用户授予对这些角色的访问权限,例如:

GRANT pg_signal_backend TO admin_user;
上一章 首页 下一章