了解 rds_superuser 角色
在 PostgreSQL 中,角色可以针对数据库中的各种对象定义一个用户、一个组或一组授予组或用户的特定权限。PostgreSQL 命令 CREATE USER 和 CREATE GROUP 已替换为更通用的 CREATE ROLE,并使用特定属性来区分数据库用户。数据库用户可以被视为具有 LOGIN 权限的角色。
注意
仍然可以使用 CREATE USER 和 CREATE GROUP 命令。有关更多信息,请参阅 PostgreSQL 文档中的数据库角色
postgres 用户是您的  RDS for PostgreSQL 数据库实例上权限最高的数据库用户。它具有以下 CREATE ROLE 语句所定义的特征。
CREATE ROLE postgres WITH LOGIN NOSUPERUSER INHERIT CREATEDB CREATEROLE NOREPLICATION VALID UNTIL 'infinity'属性 NOSUPERUSER、NOREPLICATION、INHERIT 和 VALID UNTIL 'infinity' 是 CREATE ROLE 的默认选项,除非另有说明。
默认情况下,postgres 拥有授予 rds_superuser 角色的权限以及创建角色和数据库的权限。rds_superuser 角色允许 postgres 用户执行以下操作:
- 
        添加可用于 Amazon RDS 的扩展。有关更多信息,请参阅 使用 Amazon RDS for PostgreSQL 支持的 PostgreSQL 功能 
- 
        为用户创建角色并向用户授予权限。有关更多信息,请参阅 PostgreSQL 文档中的 CREATE ROLE 和 GRANT 。 
- 
        创建数据库。有关更多信息,请参阅 PostgreSQL 文档中的 CREATE DATABASE 。 
- 
        将 rds_superuser权限授予没有这些权限的用户角色,并根据需要撤销权限。建议您仅向执行超级用户任务的那些用户授予此角色。换句话说,您可以将此角色授予数据库管理员 (DBA) 或系统管理员。
- 
        向没有 rds_superuser角色的数据库用户授予(和撤销)rds_replication角色。
- 
        向没有 rds_superuser角色的数据库用户授予(和撤销)rds_password角色。
- 
        通过使用 pg_stat_activity视图获取有关所有数据库连接的状态信息。需要时,rds_superuser可以通过使用pg_terminate_backend或pg_cancel_backend停止任何连接。
在 CREATE ROLE postgres... 语句中,您可以看到 postgres 用户角色明确禁止 PostgreSQL superuser 权限。RDS for PostgreSQL 是一项托管服务,因此您无法访问主机操作系统,也无法使用 PostgreSQL superuser 账户进行连接。许多需要独立 PostgreSQL 上的 superuser 访问权限的任务都由  Amazon RDS 自动管理。
有关授权权限的更多信息,请参阅 PostgreSQL 文档中的 GRANT
rds_superuser 角色是 中的几个预定义角色之一。RDS for PostgreSQL 数据库实例。
注意
在 PostgreSQL 13 和更早版本中,预定义角色称为默认角色。
在下面的列表中,您可以找到为新 自动创建的一些其他预定义角色。RDS for PostgreSQL 数据库实例。无法更改预定义角色及其权限。无法删除、重命名或修改这些预定义角色的权限。此类尝试会导致错误。
- 
        rds_password – 可以为数据库用户更改密码和设置密码限制的角色。默认情况下, rds_superuser角色被授予此角色,并且可以将此角色授予数据库用户。有关更多信息,请参阅 控制用户对 PostgreSQL 数据库的访问。- 
            对于早于 14 的 RDS for PostgreSQL 版本, rds_password角色可以为数据库用户和具有rds_superuser角色的用户更改密码和设置密码限制。在 RDS for PostgreSQL 14 及更高版本中,rds_password角色只能为数据库用户更改密码和设置密码限制。只有具有rds_superuser角色的用户才能对具有rds_superuser角色的其他用户执行这些操作。
 
- 
            
- 
        rdsadmin – 具有 superuser权限的管理员将对独立的 PostgreSQL 数据库执行许多管理任务,此角色专为处理这些管理任务而创建。此角色由 RDS for PostgreSQL 在内部用于许多管理任务。
- 
        rdstopmgr – Amazon RDS 在内部用于支持多可用区部署的角色。 
- 
        rds_reserved – Amazon RDS 在内部用于保留数据库连接的角色。