pgsql: Add new GUC createrole_self_grant.

From: Robert Haas <rhaas(at)postgresql(dot)org>
To: pgsql-committers(at)lists(dot)postgresql(dot)org
Subject: pgsql: Add new GUC createrole_self_grant.
Date: 2023-01-10 17:46:00
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-committers pgsql-hackers

Add new GUC createrole_self_grant.

Can be set to the empty string, or to either or both of "set" or
"inherit". If set to a non-empty value, a non-superuser who creates
a role (necessarily by relying up the CREATEROLE privilege) will
grant that role back to themselves with the specified options.

This isn't a security feature, because the grant that this feature
triggers can also be performed explicitly. Instead, it's a user experience
feature. A superuser would necessarily inherit the privileges of any
created role and be able to access all such roles via SET ROLE;
with this patch, you can configure createrole_self_grant = 'set, inherit'
to provide a similar experience for a user who has CREATEROLE but not




Modified Files
doc/src/sgml/config.sgml | 33 +++++++++
doc/src/sgml/ref/create_role.sgml | 1 +
doc/src/sgml/ref/createuser.sgml | 1 +
src/backend/commands/user.c | 97 ++++++++++++++++++++++++++-
src/backend/utils/misc/guc_tables.c | 12 ++++
src/backend/utils/misc/postgresql.conf.sample | 1 +
src/include/commands/user.h | 10 ++-
src/test/regress/expected/create_role.out | 33 +++++++++
src/test/regress/sql/create_role.sql | 37 ++++++++++
9 files changed, 220 insertions(+), 5 deletions(-)


Browse pgsql-committers by date

  From Date Subject
Next Message David Rowley 2023-01-10 21:26:55 pgsql: Have the planner consider Incremental Sort for DISTINCT
Previous Message Robert Haas 2023-01-10 17:44:35 pgsql: Restrict the privileges of CREATEROLE users.

Browse pgsql-hackers by date

  From Date Subject
Next Message Robert Haas 2023-01-10 17:46:17 Re: fixing CREATEROLE
Previous Message Nathan Bossart 2023-01-10 17:43:45 Re: wake up logical workers after ALTER SUBSCRIPTION