]> granicus.if.org Git - postgresql/commitdiff
Fix permissions explanations in CREATE DATABASE and CREATE SCHEMA docs.
authorTom Lane <tgl@sss.pgh.pa.us>
Thu, 4 Oct 2012 17:41:05 +0000 (13:41 -0400)
committerTom Lane <tgl@sss.pgh.pa.us>
Thu, 4 Oct 2012 17:41:05 +0000 (13:41 -0400)
These reference pages still claimed that you have to be superuser to create
a database or schema owned by a different role.  That was true before 8.1,
but it was changed in commits aa1110624c08298393dfce996f7b21809d98d3fd and
f91370cd2faf1fd35a1ac74d84652a85ed841919 to allow assignment of ownership
to any role you are a member of.  However, at the time we were thinking of
that primarily as a change to the ALTER OWNER rules, so the need to touch
these two CREATE ref pages got missed.

doc/src/sgml/ref/create_database.sgml
doc/src/sgml/ref/create_schema.sgml

index 91cf7018c0818a44135492ce8d03eb522422e653..5158854841f4daf1afb051cb2306fba3dafad2a0 100644 (file)
@@ -46,14 +46,6 @@ CREATE DATABASE <replaceable class="PARAMETER">name</replaceable>
    See <xref linkend="SQL-CREATEUSER">.
   </para>
 
-  <para>
-   Normally, the creator becomes the owner of the new database.
-   Superusers can create databases owned by other users, by using the
-   <literal>OWNER</> clause. They can even create databases owned by
-   users with no special privileges. Non-superusers with <literal>CREATEDB</>
-   privilege can only create databases owned by themselves.
-  </para>
-
   <para>
    By default, the new database will be created by cloning the standard
    system database <literal>template1</>.  A different template can be
@@ -84,9 +76,11 @@ CREATE DATABASE <replaceable class="PARAMETER">name</replaceable>
       <term><replaceable class="parameter">user_name</replaceable></term>
       <listitem>
        <para>
-        The name of the database user who will own the new database,
+        The role name of the user who will own the new database,
         or <literal>DEFAULT</literal> to use the default (namely, the
-        user executing the command).
+        user executing the command).  To create a database owned by another
+        role, you must be a direct or indirect member of that role,
+        or be a superuser.
        </para>
       </listitem>
      </varlistentry>
index 930d876814d9ae0ffd1f94badfbf0266e800c4c0..399e30df7d127eaef50dc056b2111eacbbcbb58f 100644 (file)
@@ -65,7 +65,8 @@ CREATE SCHEMA AUTHORIZATION <replaceable class="parameter">user_name</replaceabl
       <term><replaceable class="parameter">schema_name</replaceable></term>
       <listitem>
        <para>
-        The name of a schema to be created.  If this is omitted, the user name
+        The name of a schema to be created.  If this is omitted, the
+        <replaceable class="parameter">user_name</replaceable>
         is used as the schema name.  The name cannot
         begin with <literal>pg_</literal>, as such names
         are reserved for system schemas.
@@ -77,9 +78,10 @@ CREATE SCHEMA AUTHORIZATION <replaceable class="parameter">user_name</replaceabl
       <term><replaceable class="parameter">user_name</replaceable></term>
       <listitem>
        <para>
-        The name of the user who will own the schema.  If omitted,
-        defaults to the user executing the command.  Only superusers
-        can create schemas owned by users other than themselves.
+        The role name of the user who will own the new schema.  If omitted,
+        defaults to the user executing the command.  To create a schema
+        owned by another role, you must be a direct or indirect member of
+        that role, or be a superuser.
        </para>
       </listitem>
      </varlistentry>
@@ -175,7 +177,8 @@ CREATE VIEW hollywood.winners AS
    all objects within it.  <productname>PostgreSQL</productname>
    allows schemas to contain objects owned by users other than the
    schema owner.  This can happen only if the schema owner grants the
-   <literal>CREATE</> privilege on his schema to someone else.
+   <literal>CREATE</> privilege on his schema to someone else, or a
+   superuser chooses to create objects in it.
   </para>
  </refsect1>