本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
了解 rds_superuser 角色
在 Postgre 中SQL,角色可以針對資料庫中的各種物件,定義授與群組或使用者的使用者、群組或一組特定權限。Postgre SQL 命令CREATE GROUP
已被更一般的替換,CREATE ROLE
具有用於區分數據庫用戶的特定屬性。CREATE USER
資料庫使用者可視為具有LOGIN權限的角色。
注意
CREATE USER
和 CREATE GROUP
命令仍可使用。如需詳細資訊,請參閱 Postgre SQL 文件中的資料庫角色
RDS對於 Postgre 資料庫執行個體,使用postgres
者是您 中權限最高的資料SQL庫使用者。其具有下列 CREATE ROLE
陳述式所定義的特性。
CREATE ROLE postgres WITH LOGIN NOSUPERUSER INHERIT CREATEDB CREATEROLE NOREPLICATION VALID UNTIL 'infinity'
除非另VALID UNTIL 'infinity'
有指定 NOSUPERUSER
NOREPLICATION
INHERIT
,否則屬性CREATEROLE、、和是的預設選項。
根據預設,postgres
具有授與 rds_superuser
角色的權限,以及建立角色和資料庫的許可。rds_superuser
角色可讓 postgres
使用者執行下列動作:
新增可與 Amazon 搭配使用的擴充功能RDS。如需詳細資訊,請參閱 使用 Amazon RDS for PostgreSQL 支援的 Postgre 功能SQL
-
建立使用者的角色,並授予使用者權限。如需詳細資訊,請參閱 Postgre SQL 文件GRANT
中的CREATEROLE 和中的。 -
建立資料庫。如需詳細資訊,請參閱 Postgre SQL 文件CREATEDATABASE
中的。 將
rds_superuser
權限授予並無這些權限的使用者角色,並視需要撤銷這些權限。建議您僅將此角色授予執行超級使用者任務的使用者。換句話說,您可以將此角色授與資料庫管理員 (DBAs) 或系統管理員。對不具
rds_replication
角色的資料庫使用者授予 (和撤銷)rds_superuser
角色。對不具
rds_password
角色的資料庫使用者授予 (和撤銷)rds_superuser
角色。使用
pg_stat_activity
檢視,取得有關所有資料庫連線的狀態資訊。如有需要,rds_superuser
可使用pg_terminate_backend
或pg_cancel_backend
停止任何連線。
在CREATE ROLE postgres...
聲明中,您可以看到用postgres
戶角色具體不允許 Post SQL superuser
gre 權限。 Postgre SQL 是一項託管服務,因此您無法訪問主機操作系統,也無法使用 Post SQL superuser
gre 帳戶進行連接。許多需要在獨立 Postgre 上superuser
存取的任務SQL都是由 Amazon RDS 自動管理。
有關授予權限的更多信息,請參閱 Postgre SQL 文檔GRANT
此rds_superuser
角色是 中數個預先定義的角色之一。RDS對於後置SQL數據庫實例。
注意
在後 SQL 13 版和更早版本中,預先定義的角色稱為預設角色。
在下列清單中,您會找到為新的 自動建立的其他一些預先定義角色。RDS對於後置SQL數據庫實例。預先定義的角色及其權限無法進行變更。您無法為這些預先定義角色停止、重新命名或修改權限。嘗試這麼做會造成錯誤。
rds_password – 可變更密碼並為資料庫使用者設定密碼約束的角色。依預設,此
rds_superuser
角色會授與此角色,而且可以將角色授與資料庫使用者。如需詳細資訊,請參閱控制使用者對 Postgre SQL 資料庫的存取。對RDS於 14 以前的 Postgre SQL 版本,
rds_password
角色可以為資料庫使用者和具有rds_superuser
角色的使用者變更密碼並設定密碼限制。從 RDS Postgre SQL 版本 14 及更新版本開始,rds_password
角色只能針對資料庫使用者變更密碼並設定密碼限制。只有具有rds_superuser
角色的使用者可對具有角色的其他使用者執行這些動rds_superuser
作。
rdsadmin — 為處理許多具有
superuser
權限的管理員會在獨立 Post SQL gre 資料庫上執行的管理工作而建立的角色。rdstopmgr — Amazon 內部用RDS來支援異地同步備份部署的角色。
若要查看所有預先定義的角色,您可以連接至 Postgre 資料庫執行個體,然後使用中繼SQL資料庫執行個體。psql \du
輸出看似如下:
List of roles
Role name | Attributes | Member of
--------------+-----------------------------------+------------------------------------
postgres | Create role, Create DB +| {rds_superuser}
| Password valid until infinity |
rds_superuser | Cannot login | {pg_monitor,pg_signal_backend,
| +| rds_replication,rds_password}
...
於輸出中,您可看到 rds_superuser
並非資料庫使用者角色 (無法登入),但其具有許多其他角色的權限。您還可以看到資料庫使用者 postgres
是 rds_superuser
角色的成員。如前所述,postgres
是 Amazon RDS 主控台「建立資料庫」頁面中的預設值。若選擇其他名稱,則該名稱將顯示於角色清單中。