diff --git a/doc/src/sgml/ref/grant.sgml b/doc/src/sgml/ref/grant.sgml index 57af287dc9c..8e8196f480d 100644 --- a/doc/src/sgml/ref/grant.sgml +++ b/doc/src/sgml/ref/grant.sgml @@ -1,5 +1,5 @@ @@ -293,8 +293,12 @@ GRANT role [, ...] If WITH ADMIN OPTION is specified, the member may - in turn grant membership in the role to others. Without the admin - option, the recipient cannot do that. + in turn grant membership in the role to others, and revoke membership + in the role as well. Without the admin option, ordinary users cannot do + that. However, + database superusers can grant or revoke membership in any role to anyone. + Roles having CREATEROLE privilege can grant or revoke + membership in any role that is not a superuser. diff --git a/doc/src/sgml/user-manag.sgml b/doc/src/sgml/user-manag.sgml index f42666b8198..fea93aec915 100644 --- a/doc/src/sgml/user-manag.sgml +++ b/doc/src/sgml/user-manag.sgml @@ -1,5 +1,5 @@ @@ -203,9 +203,10 @@ CREATE USER name; checks). To create such a role, use CREATE ROLE name CREATEROLE. A role with CREATEROLE privilege can alter and drop - other roles, too. However, to alter or drop a superuser role, - superuser status is required; CREATEROLE is not sufficient - for that. + other roles, too, as well as grant or revoke membership in them. + However, to create, alter, drop, or change membership of a + superuser role, superuser status is required; + CREATEROLE is not sufficient for that. @@ -234,6 +235,16 @@ CREATE USER name; endterm="sql-alterrole-title"> commands for details. + + + It is good practice to create a role that has the CREATEDB + and CREATEROLE privileges, but is not a superuser, and then + use this role for all routine management of databases and roles. This + approach avoids the dangers of operating as a superuser for tasks that + do not really require it. + + + A role can also have role-specific defaults for many of the run-time configuration settings described in