Re: Clarification on Role Access Rights to Table Indexes

Jeff Davis <pgsql@j-davis.com>

From: Jeff Davis <pgsql@j-davis.com>
To: Nathan Bossart <nathandbossart@gmail.com>
Cc: Tom Lane <tgl@sss.pgh.pa.us>, Ayush Vatsa <ayushvatsa1810@gmail.com>, Robert Haas <robertmhaas@gmail.com>, "David G. Johnston" <david.g.johnston@gmail.com>, PostgreSQL Hackers <pgsql-hackers@postgresql.org>
Date: 2025-10-10T18:31:03Z
Lists: pgsql-hackers, pgsql-general
On Fri, 2025-10-10 at 11:26 -0500, Nathan Bossart wrote:
> On Thu, Oct 09, 2025 at 04:18:03PM -0500, Nathan Bossart wrote:
> > There's a similar pattern in get_rel_from_relname() in dblink.c,
> > which also
> > seems to only be used with an AccessShareLock (like pg_prewarm). 
> > My best
> > guess from reading lots of code, commit messages, and old e-mails
> > in the
> > archives is that the original check-privileges-before-locking work
> > was
> > never completed.

Interesting, thank you for the analysis.

> > I'm currently leaning towards continuing with v4 of the patch set. 
> > 0001
> > and 0003 are a little weird in that a concurrent change could lead
> > to a
> > "could not find parent table" ERROR, but IIUC that is an extremely
> > remote
> > possibility.
> 
> After sleeping on it, I still think this is the right call.  In any
> case,
> I've spent way too much time on this stuff, so I plan to commit the
> attached soon.

I'm OK with that. v5-0001 is an improvement over the current situation.

Regards,
	Jeff Davis




Commits

  1. Fix privilege checks for pg_prewarm() on indexes.

  2. Fix lookup code for REINDEX INDEX.

  3. Fix redefinition of typedef RangeVar.

  4. Fix lookups in pg_{clear,restore}_{attribute,relation}_stats().

  5. dblink: Avoid locking relation before privilege check.