From d7c197f46251cfdf89807f6ab2bc84a0b12c9cad Mon Sep 17 00:00:00 2001 From: Noah Misch Date: Fri, 25 Dec 2020 10:41:59 -0800 Subject: Invalidate acl.c caches when pg_authid changes. This makes existing sessions reflect "ALTER ROLE ... [NO]INHERIT" as quickly as they have been reflecting "GRANT role_name". Back-patch to 9.5 (all supported versions). Reviewed by Nathan Bossart. Discussion: https://postgr.es/m/20201221095028.GB3777719@rfd.leadboat.com --- src/test/regress/expected/privileges.out | 7 +++++++ src/test/regress/sql/privileges.sql | 6 ++++++ 2 files changed, 13 insertions(+) (limited to 'src/test') diff --git a/src/test/regress/expected/privileges.out b/src/test/regress/expected/privileges.out index 26ee16a0c37..80a604c4251 100644 --- a/src/test/regress/expected/privileges.out +++ b/src/test/regress/expected/privileges.out @@ -346,6 +346,13 @@ SET SESSION AUTHORIZATION regress_user1; SELECT * FROM atest3; -- fail ERROR: permission denied for relation atest3 DELETE FROM atest3; -- ok +BEGIN; +RESET SESSION AUTHORIZATION; +ALTER ROLE regress_priv_user1 NOINHERIT; +SET SESSION AUTHORIZATION regress_priv_user1; +DELETE FROM atest3; +ERROR: permission denied for table atest3 +ROLLBACK; -- views SET SESSION AUTHORIZATION regress_user3; CREATE VIEW atestv1 AS SELECT * FROM atest1; -- ok diff --git a/src/test/regress/sql/privileges.sql b/src/test/regress/sql/privileges.sql index f979cccea03..b7bb9d934df 100644 --- a/src/test/regress/sql/privileges.sql +++ b/src/test/regress/sql/privileges.sql @@ -216,6 +216,12 @@ SET SESSION AUTHORIZATION regress_user1; SELECT * FROM atest3; -- fail DELETE FROM atest3; -- ok +BEGIN; +RESET SESSION AUTHORIZATION; +ALTER ROLE regress_priv_user1 NOINHERIT; +SET SESSION AUTHORIZATION regress_priv_user1; +DELETE FROM atest3; +ROLLBACK; -- views -- cgit v1.2.3