查看角色及其权限 - Amazon Aurora
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

查看角色及其权限

根据您的 PostgreSQL 版本,您可以使用不同的命令在 RDS for PostgreSQL 数据库实例中查看预定义角色及其权限。

对于 PostgreSQL 15 及更早版本

连接到 RDS for PostgreSQL 数据库实例,并在 psql 中使用 \du 命令:

postgres=> \du List of roles Role name | Attributes | Member of -----------------+------------------------------------------------------------+------------------------------------------------------ postgres | Create role, Create DB +| {rds_superuser} | Password valid until infinity | rds_ad | Cannot login | {} rds_iam | Cannot login | {} rds_password | Cannot login | {} rds_replication | Cannot login | {} rds_superuser | Cannot login | {pg_monitor,pg_signal_backend,rds_password,rds_replication} rdsadmin | Superuser, Create role, Create DB, Replication, Bypass RLS+| {} | Password valid until infinity |

对于 PostgreSQL 16 及更高版本

从 PostgreSQL 16 开始,可以使用 \drg+ 命令来查看详细的角色成员资格信息:

postgres=> \drg+ List of role grants Role name | Member of | Options | Grantor ---------------+-----------------------------+---------------------+---------- postgres | rds_superuser | INHERIT, SET | rdsadmin rds_superuser | pg_checkpoint | ADMIN, INHERIT, SET | rdsadmin rds_superuser | pg_monitor | ADMIN, INHERIT, SET | rdsadmin rds_superuser | pg_signal_backend | ADMIN, INHERIT, SET | rdsadmin rds_superuser | pg_use_reserved_connections | ADMIN, INHERIT, SET | rdsadmin rds_superuser | rds_password | ADMIN, INHERIT, SET | rdsadmin rds_superuser | rds_replication | ADMIN, INHERIT, SET | rdsadmin

要检查角色成员资格,无论 PostgreSQL 版本如何,都可以使用以下 SQL 查询:

SELECT m.rolname AS "Role name", r.rolname AS "Member of" FROM pg_catalog.pg_roles m JOIN pg_catalog.pg_auth_members pam ON (pam.member = m.oid) LEFT JOIN pg_catalog.pg_roles r ON (pam.roleid = r.oid) LEFT JOIN pg_catalog.pg_roles g ON (pam.grantor = g.oid) WHERE m.rolname !~ '^pg_' ORDER BY 1, 2;

在输出中,您可以看到 rds_superuser 不是数据库用户角色(无法登录),但它具有许多其他角色的权限。您还可以看到数据库用户 postgresrds_superuser 角色的成员。如前所述,postgres 是 Amazon RDS 控制台的 Create database(创建数据库)页面中的默认值。如果您选择了另一个名称,则该名称将显示在角色列表中。