From cb4083dfbbda97eb2b23111a3093c417d8a7d41a Mon Sep 17 00:00:00 2001 From: Tom Lane Date: Thu, 4 Oct 2012 13:41:05 -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 | 14 ++++---------- doc/src/sgml/ref/create_schema.sgml | 13 ++++++++----- 2 files changed, 12 insertions(+), 15 deletions(-) diff --git a/doc/src/sgml/ref/create_database.sgml b/doc/src/sgml/ref/create_database.sgml index 91cf7018c0..5158854841 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 @@ -84,9 +76,11 @@ CREATE DATABASE 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 930d876814..399e30df7d 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. @@ -175,7 +177,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