mirror of
https://git.postgresql.org/git/postgresql.git
synced 2025-03-13 19:57:53 +08:00
Remove redundant CREATEUSER/NOCREATEUSER options in CREATE ROLE et al.
Once upon a time we did not have a separate CREATEROLE privilege, and CREATEUSER effectively meant SUPERUSER. When we invented CREATEROLE (in 8.1) we also added SUPERUSER so as to have a less confusing keyword for this role property. However, we left CREATEUSER in place as a deprecated synonym for SUPERUSER, because of backwards-compatibility concerns. It's still there and is still confusing people, as for example in bug #13694 from Justin Catterson. 9.6 will be ten years or so later, which surely ought to be long enough to end the deprecation and just remove these old keywords. Hence, do so.
This commit is contained in:
parent
bde39eed0c
commit
d371bebd3d
@ -28,7 +28,6 @@ ALTER ROLE <replaceable class="PARAMETER">role_specification</replaceable> [ WIT
|
||||
SUPERUSER | NOSUPERUSER
|
||||
| CREATEDB | NOCREATEDB
|
||||
| CREATEROLE | NOCREATEROLE
|
||||
| CREATEUSER | NOCREATEUSER
|
||||
| INHERIT | NOINHERIT
|
||||
| LOGIN | NOLOGIN
|
||||
| REPLICATION | NOREPLICATION
|
||||
@ -160,8 +159,6 @@ ALTER ROLE { <replaceable class="PARAMETER">role_specification</replaceable> | A
|
||||
<term><literal>NOCREATEDB</></term>
|
||||
<term><literal>CREATEROLE</literal></term>
|
||||
<term><literal>NOCREATEROLE</literal></term>
|
||||
<term><literal>CREATEUSER</literal></term>
|
||||
<term><literal>NOCREATEUSER</literal></term>
|
||||
<term><literal>INHERIT</literal></term>
|
||||
<term><literal>NOINHERIT</literal></term>
|
||||
<term><literal>LOGIN</literal></term>
|
||||
|
@ -28,7 +28,6 @@ ALTER USER <replaceable class="PARAMETER">role_specification</replaceable> [ WIT
|
||||
SUPERUSER | NOSUPERUSER
|
||||
| CREATEDB | NOCREATEDB
|
||||
| CREATEROLE | NOCREATEROLE
|
||||
| CREATEUSER | NOCREATEUSER
|
||||
| INHERIT | NOINHERIT
|
||||
| LOGIN | NOLOGIN
|
||||
| REPLICATION | NOREPLICATION
|
||||
|
@ -28,7 +28,6 @@ CREATE GROUP <replaceable class="PARAMETER">name</replaceable> [ [ WITH ] <repla
|
||||
SUPERUSER | NOSUPERUSER
|
||||
| CREATEDB | NOCREATEDB
|
||||
| CREATEROLE | NOCREATEROLE
|
||||
| CREATEUSER | NOCREATEUSER
|
||||
| INHERIT | NOINHERIT
|
||||
| LOGIN | NOLOGIN
|
||||
| [ ENCRYPTED | UNENCRYPTED ] PASSWORD '<replaceable class="PARAMETER">password</replaceable>'
|
||||
|
@ -28,7 +28,6 @@ CREATE ROLE <replaceable class="PARAMETER">name</replaceable> [ [ WITH ] <replac
|
||||
SUPERUSER | NOSUPERUSER
|
||||
| CREATEDB | NOCREATEDB
|
||||
| CREATEROLE | NOCREATEROLE
|
||||
| CREATEUSER | NOCREATEUSER
|
||||
| INHERIT | NOINHERIT
|
||||
| LOGIN | NOLOGIN
|
||||
| REPLICATION | NOREPLICATION
|
||||
@ -124,19 +123,6 @@ CREATE ROLE <replaceable class="PARAMETER">name</replaceable> [ [ WITH ] <replac
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><literal>CREATEUSER</literal></term>
|
||||
<term><literal>NOCREATEUSER</literal></term>
|
||||
<listitem>
|
||||
<para>
|
||||
These clauses are an obsolete, but still accepted, spelling of
|
||||
<literal>SUPERUSER</literal> and <literal>NOSUPERUSER</literal>.
|
||||
Note that they are <emphasis>not</> equivalent to
|
||||
<literal>CREATEROLE</literal> as one might naively expect!
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><literal>INHERIT</literal></term>
|
||||
<term><literal>NOINHERIT</literal></term>
|
||||
|
@ -28,7 +28,6 @@ CREATE USER <replaceable class="PARAMETER">name</replaceable> [ [ WITH ] <replac
|
||||
SUPERUSER | NOSUPERUSER
|
||||
| CREATEDB | NOCREATEDB
|
||||
| CREATEROLE | NOCREATEROLE
|
||||
| CREATEUSER | NOCREATEUSER
|
||||
| INHERIT | NOINHERIT
|
||||
| LOGIN | NOLOGIN
|
||||
| REPLICATION | NOREPLICATION
|
||||
|
@ -966,16 +966,6 @@ AlterOptRoleElem:
|
||||
$$ = makeDefElem("superuser", (Node *)makeInteger(TRUE));
|
||||
else if (strcmp($1, "nosuperuser") == 0)
|
||||
$$ = makeDefElem("superuser", (Node *)makeInteger(FALSE));
|
||||
else if (strcmp($1, "createuser") == 0)
|
||||
{
|
||||
/* For backwards compatibility, synonym for SUPERUSER */
|
||||
$$ = makeDefElem("superuser", (Node *)makeInteger(TRUE));
|
||||
}
|
||||
else if (strcmp($1, "nocreateuser") == 0)
|
||||
{
|
||||
/* For backwards compatibility, synonym for SUPERUSER */
|
||||
$$ = makeDefElem("superuser", (Node *)makeInteger(FALSE));
|
||||
}
|
||||
else if (strcmp($1, "createrole") == 0)
|
||||
$$ = makeDefElem("createrole", (Node *)makeInteger(TRUE));
|
||||
else if (strcmp($1, "nocreaterole") == 0)
|
||||
|
@ -1,7 +1,7 @@
|
||||
--
|
||||
-- create user defined conversion
|
||||
--
|
||||
CREATE USER conversion_test_user WITH NOCREATEDB NOCREATEUSER;
|
||||
CREATE USER conversion_test_user WITH NOCREATEDB NOCREATEROLE;
|
||||
SET SESSION AUTHORIZATION conversion_test_user;
|
||||
CREATE CONVERSION myconv FOR 'LATIN1' TO 'UTF8' FROM iso8859_1_to_utf8;
|
||||
--
|
||||
|
@ -1264,8 +1264,8 @@ psql_completion(const char *text, int start, int end)
|
||||
{
|
||||
static const char *const list_ALTERUSER[] =
|
||||
{"BYPASSRLS", "CONNECTION LIMIT", "CREATEDB", "CREATEROLE",
|
||||
"CREATEUSER", "ENCRYPTED", "INHERIT", "LOGIN", "NOBYPASSRLS",
|
||||
"NOCREATEDB", "NOCREATEROLE", "NOCREATEUSER", "NOINHERIT",
|
||||
"ENCRYPTED", "INHERIT", "LOGIN", "NOBYPASSRLS",
|
||||
"NOCREATEDB", "NOCREATEROLE", "NOINHERIT",
|
||||
"NOLOGIN", "NOREPLICATION", "NOSUPERUSER", "PASSWORD", "RENAME TO",
|
||||
"REPLICATION", "RESET", "SET", "SUPERUSER", "UNENCRYPTED",
|
||||
"VALID UNTIL", "WITH", NULL};
|
||||
@ -1282,8 +1282,8 @@ psql_completion(const char *text, int start, int end)
|
||||
/* Similar to the above, but don't complete "WITH" again. */
|
||||
static const char *const list_ALTERUSER_WITH[] =
|
||||
{"BYPASSRLS", "CONNECTION LIMIT", "CREATEDB", "CREATEROLE",
|
||||
"CREATEUSER", "ENCRYPTED", "INHERIT", "LOGIN", "NOBYPASSRLS",
|
||||
"NOCREATEDB", "NOCREATEROLE", "NOCREATEUSER", "NOINHERIT",
|
||||
"ENCRYPTED", "INHERIT", "LOGIN", "NOBYPASSRLS",
|
||||
"NOCREATEDB", "NOCREATEROLE", "NOINHERIT",
|
||||
"NOLOGIN", "NOREPLICATION", "NOSUPERUSER", "PASSWORD", "RENAME TO",
|
||||
"REPLICATION", "RESET", "SET", "SUPERUSER", "UNENCRYPTED",
|
||||
"VALID UNTIL", NULL};
|
||||
@ -2671,8 +2671,8 @@ psql_completion(const char *text, int start, int end)
|
||||
{
|
||||
static const char *const list_CREATEROLE[] =
|
||||
{"ADMIN", "BYPASSRLS", "CONNECTION LIMIT", "CREATEDB", "CREATEROLE",
|
||||
"CREATEUSER", "ENCRYPTED", "IN", "INHERIT", "LOGIN", "NOBYPASSRLS",
|
||||
"NOCREATEDB", "NOCREATEROLE", "NOCREATEUSER", "NOINHERIT",
|
||||
"ENCRYPTED", "IN", "INHERIT", "LOGIN", "NOBYPASSRLS",
|
||||
"NOCREATEDB", "NOCREATEROLE", "NOINHERIT",
|
||||
"NOLOGIN", "NOREPLICATION", "NOSUPERUSER", "PASSWORD",
|
||||
"REPLICATION", "ROLE", "SUPERUSER", "SYSID", "UNENCRYPTED",
|
||||
"VALID UNTIL", "WITH", NULL};
|
||||
@ -2690,8 +2690,8 @@ psql_completion(const char *text, int start, int end)
|
||||
/* Similar to the above, but don't complete "WITH" again. */
|
||||
static const char *const list_CREATEROLE_WITH[] =
|
||||
{"ADMIN", "BYPASSRLS", "CONNECTION LIMIT", "CREATEDB", "CREATEROLE",
|
||||
"CREATEUSER", "ENCRYPTED", "IN", "INHERIT", "LOGIN", "NOBYPASSRLS",
|
||||
"NOCREATEDB", "NOCREATEROLE", "NOCREATEUSER", "NOINHERIT",
|
||||
"ENCRYPTED", "IN", "INHERIT", "LOGIN", "NOBYPASSRLS",
|
||||
"NOCREATEDB", "NOCREATEROLE", "NOINHERIT",
|
||||
"NOLOGIN", "NOREPLICATION", "NOSUPERUSER", "PASSWORD",
|
||||
"REPLICATION", "ROLE", "SUPERUSER", "SYSID", "UNENCRYPTED",
|
||||
"VALID UNTIL", NULL};
|
||||
|
@ -3,7 +3,7 @@ SET bytea_output TO escape;
|
||||
--
|
||||
-- create user defined conversion
|
||||
--
|
||||
CREATE USER conversion_test_user WITH NOCREATEDB NOCREATEUSER;
|
||||
CREATE USER conversion_test_user WITH NOCREATEDB NOCREATEROLE;
|
||||
SET SESSION AUTHORIZATION conversion_test_user;
|
||||
CREATE CONVERSION myconv FOR 'LATIN1' TO 'UTF8' FROM iso8859_1_to_utf8;
|
||||
--
|
||||
|
@ -4,7 +4,7 @@ SET bytea_output TO escape;
|
||||
--
|
||||
-- create user defined conversion
|
||||
--
|
||||
CREATE USER conversion_test_user WITH NOCREATEDB NOCREATEUSER;
|
||||
CREATE USER conversion_test_user WITH NOCREATEDB NOCREATEROLE;
|
||||
SET SESSION AUTHORIZATION conversion_test_user;
|
||||
CREATE CONVERSION myconv FOR 'LATIN1' TO 'UTF8' FROM iso8859_1_to_utf8;
|
||||
--
|
||||
|
Loading…
Reference in New Issue
Block a user