Re: New SET privilege for pg_has_role() in v16+

Поиск
Список
Период
Сортировка
От Adrian Klaver
Тема Re: New SET privilege for pg_has_role() in v16+
Дата
Msg-id 8dd13827-bb84-467c-ba47-d23de63ad8d5@aklaver.com
обсуждение исходный текст
Ответ на Re: New SET privilege for pg_has_role() in v16+  (Dominique Devienne <ddevienne@gmail.com>)
Список pgsql-general
On 1/2/24 08:15, Dominique Devienne wrote:
> On Tue, Jan 2, 2024 at 5:09 PM Adrian Klaver <adrian.klaver@aklaver.com 
> <mailto:adrian.klaver@aklaver.com>> wrote:
> 
>     On 1/2/24 07:24, Dominique Devienne wrote:
>      > pg_has_role() from
>      > https://www.postgresql.org/docs/current/functions-info.html
>     <https://www.postgresql.org/docs/current/functions-info.html>
>      > <https://www.postgresql.org/docs/current/functions-info.html
>     <https://www.postgresql.org/docs/current/functions-info.html>>
>      > added the 'SET' privilege in v16, and on top of the existing
>     'MEMBER'
>      > and 'USAGE' ones:
> 
>     https://www.postgresql.org/docs/current/sql-set-role.html
>     <https://www.postgresql.org/docs/current/sql-set-role.html>
> 
>     "[...], if the role was granted WITH SET TRUE [...]"
> 
> 
> That seems to be the important part of your RFTM answer, which is 
> apparently new in v16.

There also seems to an override:

https://www.postgresql.org/docs/16/runtime-config-client.html#GUC-CREATEROLE-SELF-GRANT

"createrole_self_grant (string)

     If a user who has CREATEROLE but not SUPERUSER creates a role, and 
if this is set to a non-empty value, the newly-created role will be 
granted to the creating user with the options specified. The value must 
be set, inherit, or a comma-separated list of these. The default value 
is an empty string, which disables the feature.

     The purpose of this option is to allow a CREATEROLE user who is not 
a superuser to automatically inherit, or automatically gain the ability 
to SET ROLE to, any created users. Since a CREATEROLE user is always 
implicitly granted ADMIN OPTION on created roles, that user could always 
execute a GRANT statement that would achieve the same effect as this 
setting. However, it can be convenient for usability reasons if the 
grant happens automatically. A superuser automatically inherits the 
privileges of every role and can always SET ROLE to any role, and this 
setting can be used to produce a similar behavior for CREATEROLE users 
for users which they create.
"

-- 
Adrian Klaver
adrian.klaver@aklaver.com




В списке pgsql-general по дате отправления:

Предыдущее
От: Adrian Klaver
Дата:
Сообщение: Re: New SET privilege for pg_has_role() in v16+
Следующее
От: Adrian Klaver
Дата:
Сообщение: Re: Import csv to temp table