檢視角色及其權限 - Amazon Aurora

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

檢視角色及其權限

您可以根據 PostgreSQL 版本,使用不同的命令在 RDS for PostgreSQL PostgreSQL 資料庫執行個體中檢視預先定義的角色及其權限。若要查看所有預先定義的角色,您可以連線至 RDS for PostgreSQL 資料庫執行個體,並使用 執行下列命令psql

對於 psql 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 |

對於 psql 16 版和更新版本

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

若要在沒有版本相依性的情況下檢查角色成員資格,您可以使用下列 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 (建立資料庫) 頁面中的預設值。若選擇其他名稱,則該名稱將顯示於角色清單中。