mirror of
https://github.com/postgres/postgres.git
synced 2026-06-09 00:32:10 -04:00
Fix pg_subscription column privileges for subwalrcvtimeout
The subwalrcvtimeout column was added by commit fb80f38, but the
column-level privileges on pg_subscription were not updated. As a
result, non-superusers cannot read the column, unlike the other
publicly readable pg_subscription columns.
This commit grants SELECT privilege on subwalrcvtimeout to PUBLIC.
Bump catalog version.
Author: Nisha Moond <nisha.moond412@gmail.com>
Reviewed-by: Amit Kapila <amit.kapila16@gmail.com>
Reviewed-by: Fujii Masao <masao.fujii@gmail.com>
Discussion: https://postgr.es/m/CABdArM4uA=6nA0BunJwudiEoY1BcWUS_oj_2pkEq_d-YdiBJhw@mail.gmail.com
This commit is contained in:
parent
f2ff15e4c3
commit
1a5b19e447
4 changed files with 29 additions and 2 deletions
|
|
@ -1527,7 +1527,8 @@ GRANT SELECT (oid, subdbid, subskiplsn, subname, subowner, subenabled,
|
|||
subbinary, substream, subtwophasestate, subdisableonerr,
|
||||
subpasswordrequired, subrunasowner, subfailover,
|
||||
subretaindeadtuples, submaxretention, subretentionactive,
|
||||
subserver, subslotname, subsynccommit, subpublications, suborigin)
|
||||
subserver, subslotname, subsynccommit, subwalrcvtimeout,
|
||||
subpublications, suborigin)
|
||||
ON pg_subscription TO public;
|
||||
|
||||
CREATE VIEW pg_stat_subscription_stats AS
|
||||
|
|
|
|||
|
|
@ -57,6 +57,6 @@
|
|||
*/
|
||||
|
||||
/* yyyymmddN */
|
||||
#define CATALOG_VERSION_NO 202605131
|
||||
#define CATALOG_VERSION_NO 202606051
|
||||
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -47,6 +47,21 @@ SELECT obj_description(s.oid, 'pg_subscription') FROM pg_subscription s;
|
|||
test subscription
|
||||
(1 row)
|
||||
|
||||
-- Check that only subconninfo is not publicly readable in pg_subscription.
|
||||
SELECT count(*) = 0 AS ok
|
||||
FROM pg_attribute
|
||||
WHERE attrelid = 'pg_catalog.pg_subscription'::regclass AND attnum > 0 AND NOT attisdropped
|
||||
AND ((attname = 'subconninfo'
|
||||
AND has_column_privilege('regress_subscription_user_dummy',
|
||||
'pg_catalog.pg_subscription', attname, 'SELECT'))
|
||||
OR (attname <> 'subconninfo'
|
||||
AND NOT has_column_privilege('regress_subscription_user_dummy',
|
||||
'pg_catalog.pg_subscription', attname, 'SELECT')));
|
||||
ok
|
||||
----
|
||||
t
|
||||
(1 row)
|
||||
|
||||
-- Check if the subscription stats are created and stats_reset is updated
|
||||
-- by pg_stat_reset_subscription_stats().
|
||||
SELECT subname, stats_reset IS NULL stats_reset_is_null FROM pg_stat_subscription_stats WHERE subname = 'regress_testsub';
|
||||
|
|
|
|||
|
|
@ -42,6 +42,17 @@ CREATE SUBSCRIPTION regress_testsub CONNECTION 'dbname=regress_doesnotexist' PUB
|
|||
COMMENT ON SUBSCRIPTION regress_testsub IS 'test subscription';
|
||||
SELECT obj_description(s.oid, 'pg_subscription') FROM pg_subscription s;
|
||||
|
||||
-- Check that only subconninfo is not publicly readable in pg_subscription.
|
||||
SELECT count(*) = 0 AS ok
|
||||
FROM pg_attribute
|
||||
WHERE attrelid = 'pg_catalog.pg_subscription'::regclass AND attnum > 0 AND NOT attisdropped
|
||||
AND ((attname = 'subconninfo'
|
||||
AND has_column_privilege('regress_subscription_user_dummy',
|
||||
'pg_catalog.pg_subscription', attname, 'SELECT'))
|
||||
OR (attname <> 'subconninfo'
|
||||
AND NOT has_column_privilege('regress_subscription_user_dummy',
|
||||
'pg_catalog.pg_subscription', attname, 'SELECT')));
|
||||
|
||||
-- Check if the subscription stats are created and stats_reset is updated
|
||||
-- by pg_stat_reset_subscription_stats().
|
||||
SELECT subname, stats_reset IS NULL stats_reset_is_null FROM pg_stat_subscription_stats WHERE subname = 'regress_testsub';
|
||||
|
|
|
|||
Loading…
Reference in a new issue