agora inbox for pgsql-docs@postgresql.org
help / color / mirror / Atom feedFrom: Andrei Polushin <polushin@gmail.com>
To: pgsql-docs@lists.postgresql.org
Subject: "GRANT on Roles" supports multiple options
Date: Thu, 8 May 2025 21:58:11 +0700
Message-ID: <ECA41A7A-3F47-4AC8-80AC-2F3C8E2149A1@gmail.com> (raw)
In-Reply-To: <174671599514.1455381.16053182845970432387@wrigleys.postgresql.org>
References: <174671599514.1455381.16053182845970432387@wrigleys.postgresql.org>
(resending with correct formatting)
Hi!
In the documentation of the GRANT[1] command, the Synopsis for "GRANT on Roles" command is incomplete. Quoting from the current docs:
GRANT role_name [, ...] TO role_specification [, ...]
[ WITH { ADMIN | INHERIT | SET } { OPTION | TRUE | FALSE } ]
[ GRANTED BY role_specification ]
The "GRANT on Roles" command is documented as if it expects a single option after "WITH", but it actually supports multiple options, separated by comma, e.g.
GRANT created_user TO creating_user WITH ADMIN TRUE, SET FALSE, INHERIT FALSE
The example is taken from section "21.2. Role Attributes"[2] of the documentation.
More examples can be found by searching the codebase:
git grep -Pi '\bGRANT\b.+\bTO\b.+,\s*(ADMIN|INHERIT|SET)\s+\w+'
The parser is implemented here:
src/backend/commands/user.c:1480:GrantRole(ParseState *pstate, GrantRoleStmt *stmt)
The documentation is to be corrected for v16, v17, and later versions.
[1]: https://www.postgresql.org/docs/17/sql-grant.html
[2]: https://www.postgresql.org/docs/17/role-attributes.html
diff --git a/doc/src/sgml/ref/grant.sgml b/doc/src/sgml/ref/grant.sgml
index 999f657d5c0..9796e9a49d7 100644
--- a/doc/src/sgml/ref/grant.sgml
+++ b/doc/src/sgml/ref/grant.sgml
@@ -100,3 +100,3 @@ GRANT { USAGE | ALL [ PRIVILEGES ] }
GRANT <replaceable class="parameter">role_name</replaceable> [, ...] TO <replaceable class="parameter">role_specification</replaceable> [, ...]
- [ WITH { ADMIN | INHERIT | SET } { OPTION | TRUE | FALSE } ]
+ [ WITH [ { ADMIN | INHERIT | SET } { OPTION | TRUE | FALSE } ] [, ...] ]
[ GRANTED BY <replaceable class="parameter">role_specification</replaceable> ]
--
Andrei Polushin
view thread (2+ messages)
Message-ID: <ECA41A7A-3F47-4AC8-80AC-2F3C8E2149A1@gmail.com>
Permalink: ../ECA41A7A-3F47-4AC8-80AC-2F3C8E2149A1@gmail.com/
Also on: postgresql.org/message-id/ECA41A7A-3F47-4AC8-80AC-2F3C8E2149A1@gmail.com
reply
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Reply to all the recipients using the --to and --cc options:
reply via email
To: pgsql-docs@postgresql.org
Cc: polushin@gmail.com, pgsql-docs@lists.postgresql.org
Subject: Re: "GRANT on Roles" supports multiple options
In-Reply-To: <ECA41A7A-3F47-4AC8-80AC-2F3C8E2149A1@gmail.com>
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
This inbox is served by agora; see mirroring instructions
for how to clone and mirror all data and code used for this inbox