From 0f6d0119f2b3e0957c67e6cb5ec84e669718bd27 Mon Sep 17 00:00:00 2001 From: Tom Lane Date: Thu, 4 Oct 2012 13:41:12 -0400 Subject: [PATCH] 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 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 | 16 +++++----------- doc/src/sgml/ref/create_schema.sgml | 13 ++++++++----- 2 files changed, 13 insertions(+), 16 deletions(-) diff --git a/doc/src/sgml/ref/create_database.sgml b/doc/src/sgml/ref/create_database.sgml index c3e691a4ad..de37f06b8e 100644 --- a/doc/src/sgml/ref/create_database.sgml +++ b/doc/src/sgml/ref/create_database.sgml @@ -46,14 +46,6 @@ CREATE DATABASE name See . - - Normally, the creator becomes the owner of the new database. - Superusers can create databases owned by other users, by using the - OWNER clause. They can even create databases owned by - users with no special privileges. Non-superusers with CREATEDB - privilege can only create databases owned by themselves. - - By default, the new database will be created by cloning the standard system database template1. A different template can be @@ -81,12 +73,14 @@ CREATE DATABASE name - use_name + user_name - 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 DEFAULT 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. diff --git a/doc/src/sgml/ref/create_schema.sgml b/doc/src/sgml/ref/create_schema.sgml index 0df736877f..2cdf705328 100644 --- a/doc/src/sgml/ref/create_schema.sgml +++ b/doc/src/sgml/ref/create_schema.sgml @@ -65,7 +65,8 @@ CREATE SCHEMA AUTHORIZATION user_nameschema_name - 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 + user_name is used as the schema name. The name cannot begin with pg_, as such names are reserved for system schemas. @@ -77,9 +78,10 @@ CREATE SCHEMA AUTHORIZATION user_nameuser_name - 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. @@ -176,7 +178,8 @@ CREATE VIEW hollywood.winners AS all objects within it. PostgreSQL allows schemas to contain objects owned by users other than the schema owner. This can happen only if the schema owner grants the - CREATE privilege on his schema to someone else. + CREATE privilege on his schema to someone else, or a + superuser chooses to create objects in it. -- 2.40.0