From 8d8afd48d3f298bc4d8ab2b115cc39550132bde7 Mon Sep 17 00:00:00 2001 From: Nathan Bossart Date: Wed, 14 Feb 2024 11:48:29 -0600 Subject: Allow pg_monitor to execute pg_current_logfile(). We allow roles with privileges of pg_monitor to execute functions like pg_ls_logdir(), so it seems natural that such roles would also be able to execute this function. Bumps catversion. Co-authored-by: Pavlo Golub Reviewed-by: Daniel Gustafsson Discussion: https://postgr.es/m/CAK7ymcLmEYWyQkiCZ64WC-HCzXAB0omM%3DYpj9B3rXe8vUAFMqw%40mail.gmail.com --- src/test/regress/expected/misc_functions.out | 20 ++++++++++++++++++++ src/test/regress/sql/misc_functions.sql | 11 +++++++++++ 2 files changed, 31 insertions(+) (limited to 'src/test') diff --git a/src/test/regress/expected/misc_functions.out b/src/test/regress/expected/misc_functions.out index 7c15477104b..d5f61dfad93 100644 --- a/src/test/regress/expected/misc_functions.out +++ b/src/test/regress/expected/misc_functions.out @@ -683,3 +683,23 @@ SELECT gist_stratnum_identity(18::smallint); 18 (1 row) +-- pg_current_logfile +CREATE ROLE regress_current_logfile; +-- not available by default +SELECT has_function_privilege('regress_current_logfile', + 'pg_current_logfile()', 'EXECUTE'); + has_function_privilege +------------------------ + f +(1 row) + +GRANT pg_monitor TO regress_current_logfile; +-- role has privileges of pg_monitor and can execute the function +SELECT has_function_privilege('regress_current_logfile', + 'pg_current_logfile()', 'EXECUTE'); + has_function_privilege +------------------------ + t +(1 row) + +DROP ROLE regress_current_logfile; diff --git a/src/test/regress/sql/misc_functions.sql b/src/test/regress/sql/misc_functions.sql index 851dad90f44..928b04db7ff 100644 --- a/src/test/regress/sql/misc_functions.sql +++ b/src/test/regress/sql/misc_functions.sql @@ -254,3 +254,14 @@ FROM pg_walfile_name_offset('0/0'::pg_lsn + :segment_size - 1), -- test stratnum support functions SELECT gist_stratnum_identity(3::smallint); SELECT gist_stratnum_identity(18::smallint); + +-- pg_current_logfile +CREATE ROLE regress_current_logfile; +-- not available by default +SELECT has_function_privilege('regress_current_logfile', + 'pg_current_logfile()', 'EXECUTE'); +GRANT pg_monitor TO regress_current_logfile; +-- role has privileges of pg_monitor and can execute the function +SELECT has_function_privilege('regress_current_logfile', + 'pg_current_logfile()', 'EXECUTE'); +DROP ROLE regress_current_logfile; -- cgit v1.2.3