Fix permissions explanations in CREATE DATABASE and CREATE SCHEMA docs.

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 aa1110624c and
f91370cd2f 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.
This commit is contained in:
Tom Lane 2012-10-04 13:41:01 -04:00
parent 1a956481ba
commit 7e389f73d1
2 changed files with 12 additions and 15 deletions

View 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>

View File

@ -67,7 +67,8 @@ CREATE SCHEMA IF NOT EXISTS AUTHORIZATION <replaceable class="parameter">user_na
<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.
@ -79,9 +80,10 @@ CREATE SCHEMA IF NOT EXISTS AUTHORIZATION <replaceable class="parameter">user_na
<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>
@ -197,7 +199,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>
<para>