mirror of
https://git.postgresql.org/git/postgresql.git
synced 2024-12-27 08:39:28 +08:00
Disallow SET SESSION AUTHORIZATION pg_*
As part of reserving the pg_* namespace for default roles and in line with SET ROLE and other previous efforts, disallow settings the role to a default/reserved role using SET SESSION AUTHORIZATION. These checks and restrictions on what is allowed regarding default / reserved roles are under debate, but it seems prudent to ensure that the existing checks at least cover the intended cases while the debate rages on. On me to clean it up if the consensus decision is to remove these checks.
This commit is contained in:
parent
be65eddd80
commit
bfed4ab824
@ -794,6 +794,10 @@ check_session_authorization(char **newval, void **extra, GucSource source)
|
||||
return false;
|
||||
}
|
||||
|
||||
/* Do not allow setting role to a reserved role. */
|
||||
if (strncmp(*newval, "pg_", 3) == 0)
|
||||
return false;
|
||||
|
||||
/* Look up the username */
|
||||
roleTup = SearchSysCache1(AUTHNAME, PointerGetDatum(*newval));
|
||||
if (!HeapTupleIsValid(roleTup))
|
||||
|
Loading…
Reference in New Issue
Block a user