Re: allow granting CLUSTER, REFRESH MATERIALIZED VIEW, and REINDEX
Justin Pryzby <pryzby@telsasoft.com>
From: Justin Pryzby <pryzby@telsasoft.com>
To: Pavel Luzanov <p.luzanov@postgrespro.ru>
Cc: Jeff Davis <pgsql@j-davis.com>, Nathan Bossart <nathandbossart@gmail.com>, pgsql-hackers@postgresql.org
Date: 2022-12-14T22:11:40Z
Lists: pgsql-hackers
On Thu, Dec 15, 2022 at 01:02:39AM +0300, Pavel Luzanov wrote: > On 14.12.2022 22:46, Jeff Davis wrote: > > The behavior is that MAINTAIN > > privileges on the partitioned table does not imply MAINTAIN privileges > > on the partitions. I believe that's fine and it's consistent with other > > privileges on partitioned tables, such as SELECT and INSERT. > > Sorry, I may have missed something, but here's what I see: > > postgres@postgres(16.0)=# create table p (id int) partition by list (id); > postgres@postgres(16.0)=# create table p1 partition of p for values in (1); > postgres@postgres(16.0)=# create table p2 partition of p for values in (2); > > postgres@postgres(16.0)=# grant select, insert, maintain on p to alice ; > > postgres@postgres(16.0)=# \c - alice > You are now connected to database "postgres" as user "alice". > > alice@postgres(16.0)=> insert into p values (1); > INSERT 0 1 > alice@postgres(16.0)=> select * from p; > id > ---- > 1 > (1 row) > > alice@postgres(16.0)=> vacuum p; > WARNING: permission denied to vacuum "p1", skipping it > WARNING: permission denied to vacuum "p2", skipping it > VACUUM Yeah, but: regression=> insert into p1 values (1); ERROR: permission denied for table p1 regression=> select * from p1; ERROR: permission denied for table p1
Commits
-
Improve privilege documentation for maintenance commands.
- c2122aae636d 16.0 landed
-
Fix cache lookup hazards introduced by ff9618e82a.
- 4dbdb82513b6 16.0 landed
-
Move bool parameter for vacuum_rel() to option bits.
- 5b1a87994312 16.0 landed
-
Fix MAINTAIN privileges for toast tables and partitions.
- ff9618e82a46 16.0 landed
-
Add grantable MAINTAIN privilege and pg_maintain role.
- 60684dd834a2 16.0 landed