内容提要
CREATEROLE权限允许用户添加、删除和修改其他角色,但不能创建或修改超级用户。具有CREATEROLE权限的用户可以访问所有预定义的系统角色,并可以授予或撤销成员资格。然而,授予用户CREATEROLE权限可能会使系统面临风险。在PostgreSQL 16中,具有CREATEROLE权限的用户不再能够授予角色的成员资格,而只能授予具有ADMIN OPTION的角色的成员资格。WITH ADMIN OPTION权限允许用户授予角色的成员资格给其他用户,撤销角色的成员资格,以及对角色进行评论,但不能删除角色。在授予CREATEROLE权限时需要谨慎,确保只有可靠的人或角色拥有该权限。
关键要点
-
CREATEROLE权限允许用户添加、删除和修改其他角色,但不能创建或修改超级用户。
-
具有CREATEROLE权限的用户无法授予或撤销REPLICATION权限,也不能创建REPLICATION用户。
-
具有CREATEROLE权限的用户可以访问所有预定义的系统角色,包括pg_execute_server_program和pg_write_server_files等高权限角色。
-
在PostgreSQL 16中,具有CREATEROLE权限的用户只能授予具有ADMIN OPTION的角色的成员资格。
-
WITH ADMIN OPTION权限允许用户授予角色的成员资格、撤销成员资格和对角色进行评论,但不能删除角色。
-
在PostgreSQL 15及更早版本中,具有CREATEROLE权限的用户可以自由授予其他用户重要权限。
-
在PostgreSQL 16中,具有CREATEROLE权限的用户在授予角色时受到限制,必须拥有ADMIN OPTION。
-
授予CREATEROLE权限时需谨慎,确保只有可靠的人或角色拥有该权限。