Appended is a small documentation patch that adds a note to the CREATE ROLE
page, based on what Tom Lane told me here:

http://archives.postgresql.org/pgsql-general/2005-11/msg00998.php

I think this behavior should be explicitly noted in the docs.


Joachim

diff -cr cvs/pgsql/doc/src/sgml/ref/create_role.sgml 
cvs.doc/pgsql/doc/src/sgml/ref/create_role.sgml
*** cvs/pgsql/doc/src/sgml/ref/create_role.sgml 2005-11-20 13:42:46.000000000 
+0100
--- cvs.doc/pgsql/doc/src/sgml/ref/create_role.sgml     2005-12-09 
11:52:24.000000000 +0100
***************
*** 345,350 ****
--- 345,363 ----
    </para>
  
    <para>
+    Be careful with the <literal>CREATEROLE</> privilege. There is no concept 
of
+    inheritance for the privileges of a <literal>CREATEROLE</>-role. That
+    means that even if a role does not have a certain privilege but is allowed
+    to create other roles, it can easily create another role with different
+    privileges than its own (except for creating roles with superuser
+    privileges). For example, if the role <quote>user</> has the
+    <literal>CREATEROLE</> privilege but not the <literal>CREATEDB</> 
privilege,
+    nonetheless it can create a new role with the <literal>CREATEDB</>
+    privilege. Therefore, regard roles that have the <literal>CREATEROLE</>
+    privilege as almost-superuser-roles.
+   </para>
+ 
+   <para>
     <productname>PostgreSQL</productname> includes a program <xref
     linkend="APP-CREATEUSER" endterm="APP-CREATEUSER-title"> that has
     the same functionality as <command>CREATE ROLE</command> (in fact,
---------------------------(end of broadcast)---------------------------
TIP 4: Have you searched our list archives?

               http://archives.postgresql.org

Reply via email to