Skip to content

Commit 508bf95

Browse files
committed
Remove any-user DML capability from allow_system_table_mods
Previously, allow_system_table_mods allowed a non-superuser to do DML on a system table without further permission checks. This has been removed, as it was quite inconsistent with the rest of the meaning of this setting. (Since allow_system_table_mods was previously only accessible with a server restart, it is unlikely that anyone was using this possibility.) Reviewed-by: Tom Lane <tgl@sss.pgh.pa.us> Discussion: https://www.postgresql.org/message-id/flat/8b00ea5e-28a7-88ba-e848-21528b632354%402ndquadrant.com
1 parent d4feade commit 508bf95

File tree

1 file changed

+2
-3
lines changed

1 file changed

+2
-3
lines changed

src/backend/catalog/aclchk.c

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3851,7 +3851,7 @@ pg_class_aclmask(Oid table_oid, Oid roleid,
38513851

38523852
/*
38533853
* Deny anyone permission to update a system catalog unless
3854-
* pg_authid.rolsuper is set. Also allow it if allowSystemTableMods.
3854+
* pg_authid.rolsuper is set.
38553855
*
38563856
* As of 7.4 we have some updatable system views; those shouldn't be
38573857
* protected in this way. Assume the view rules can take care of
@@ -3860,8 +3860,7 @@ pg_class_aclmask(Oid table_oid, Oid roleid,
38603860
if ((mask & (ACL_INSERT | ACL_UPDATE | ACL_DELETE | ACL_TRUNCATE | ACL_USAGE)) &&
38613861
IsSystemClass(table_oid, classForm) &&
38623862
classForm->relkind != RELKIND_VIEW &&
3863-
!superuser_arg(roleid) &&
3864-
!allowSystemTableMods)
3863+
!superuser_arg(roleid))
38653864
{
38663865
#ifdef ACLDEBUG
38673866
elog(DEBUG2, "permission denied for system catalog update");

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy