Fix documentation error: GRANT/REVOKE for roles only accept role names
authorTom Lane <tgl@sss.pgh.pa.us>
Wed, 2 Aug 2006 16:30:00 +0000 (16:30 +0000)
committerTom Lane <tgl@sss.pgh.pa.us>
Wed, 2 Aug 2006 16:30:00 +0000 (16:30 +0000)
as grantees, not PUBLIC ... and you can't say GROUP either.  Noted by
Brian Hurt.

doc/src/sgml/ref/grant.sgml
doc/src/sgml/ref/revoke.sgml
doc/src/sgml/user-manag.sgml

index e635d08a96d9644bbe0a05fba9c12d7dc603b57a..79346ed9fee05600b51438a7a84c8d7f4b9fe57a 100644 (file)
@@ -50,8 +50,7 @@ GRANT { CREATE | ALL [ PRIVILEGES ] }
     ON TABLESPACE <replaceable>tablespacename</> [, ...]
     TO { <replaceable class="PARAMETER">username</replaceable> | GROUP <replaceable class="PARAMETER">groupname</replaceable> | PUBLIC } [, ...] [ WITH GRANT OPTION ]
 
-GRANT <replaceable class="PARAMETER">role</replaceable> [, ...]
-    TO { <replaceable class="PARAMETER">username</replaceable> | GROUP <replaceable class="PARAMETER">groupname</replaceable> | PUBLIC } [, ...] [ WITH ADMIN OPTION ]
+GRANT <replaceable class="PARAMETER">role</replaceable> [, ...] TO <replaceable class="PARAMETER">username</replaceable> [, ...] [ WITH ADMIN OPTION ]
 </synopsis>
  </refsynopsisdiv>
 
@@ -325,6 +324,12 @@ GRANT <replaceable class="PARAMETER">role</replaceable> [, ...]
    Roles having <literal>CREATEROLE</> privilege can grant or revoke
    membership in any role that is not a superuser.
   </para>
+
+  <para>
+   Unlike the case with privileges, membership in a role cannot be granted
+   to <literal>PUBLIC</>.  Note also that this form of the command does not
+   allow the noise word <literal>GROUP</>.
+  </para>
  </refsect2>
  </refsect1>
 
index e20f5f50550f6f56d2d408c02a406b16cdc95d14..d95dae4e3b13b35be1947f6359841dbd1a954638 100644 (file)
@@ -65,8 +65,7 @@ REVOKE [ GRANT OPTION FOR ]
     [ CASCADE | RESTRICT ]
 
 REVOKE [ ADMIN OPTION FOR ]
-    <replaceable class="PARAMETER">role</replaceable> [, ...]
-    FROM { <replaceable class="PARAMETER">username</replaceable> | GROUP <replaceable class="PARAMETER">groupname</replaceable> | PUBLIC } [, ...]
+    <replaceable class="PARAMETER">role</replaceable> [, ...] FROM <replaceable class="PARAMETER">username</replaceable> [, ...]
     [ CASCADE | RESTRICT ]
 </synopsis>
  </refsynopsisdiv>
@@ -119,6 +118,8 @@ REVOKE [ ADMIN OPTION FOR ]
   <para>
    When revoking membership in a role, <literal>GRANT OPTION</> is instead
    called <literal>ADMIN OPTION</>, but the behavior is similar.
+   Note also that this form of the command does not
+   allow the noise word <literal>GROUP</>.
   </para>
  </refsect1>
 
index 86b508d0b4ca819a56a8174d6018146b531657e2..485f0c021bafa2495f0aa5c9e3d247beeeb8fe5a 100644 (file)
@@ -375,7 +375,9 @@ REVOKE <replaceable>group_role</replaceable> FROM <replaceable>role1</replaceabl
 </synopsis>
    You can grant membership to other group roles, too (since there isn't
    really any distinction between group roles and non-group roles).  The
-   only restriction is that you can't set up circular membership loops.
+   database will not let you set up circular membership loops.  Also,
+   it is not permitted to grant membership in a role to
+   <literal>PUBLIC</literal>.
   </para>
 
   <para>