Re: BUG #18387: Erroneous permission checks and/or misleading error messages with refresh materialized view - Mailing list pgsql-bugs

From Laurenz Albe
Subject Re: BUG #18387: Erroneous permission checks and/or misleading error messages with refresh materialized view
Date
Msg-id ab150c8f181fd343d08ddf0896dc59496184db62.camel@cybertec.at
Whole thread Raw
In response to Re: BUG #18387: Erroneous permission checks and/or misleading error messages with refresh materialized view  (Heikki Linnakangas <hlinnaka@iki.fi>)
Responses Re: BUG #18387: Erroneous permission checks and/or misleading error messages with refresh materialized view  (Tom Lane <tgl@sss.pgh.pa.us>)
BUG #18387: Erroneous permission checks and/or misleading error messages with refresh materialized view  ("Wetmore, Matthew (CTR)" <Matthew.Wetmore@evernorth.com>)
List pgsql-bugs
On Tue, 2024-03-12 at 01:02 +0200, Heikki Linnakangas wrote:
> test=# \c test
> > You are now connected to database "test" as user "postgres".
> > test=# REFRESH MATERIALIZED VIEW CONCURRENTLY test_mv;
> > ERROR:  permission denied to create temporary tables in database "test"
> > --what??? N2
>
> That's interesting. REFRESH MATERIALIZED VIEW CONCURRENTLY uses
> temporary tables internally, which fails if the user doesn't have
> permissions to create temporary tables.
>
> I guess we need to allow creating such internal temporary tables,
> despite the missing permission. That'll need some careful analysis to
> make sure we don't accidentally allow creating other temporary tables...

Wouldn't it be sufficient to document that fact, perhaps add an
error hint and require the MV owner to have TEMP on the database?

That's not an outrageous requirement, and it couldn't open any
security back doors.

Yours,
Laurenz Albe



pgsql-bugs by date:

Previous
From: Andrei Lepikhov
Date:
Subject: Re: BUG #18349: ERROR: invalid DSA memory alloc request size 1811939328, CONTEXT: parallel worker
Next
From: "Hayato Kuroda (Fujitsu)"
Date:
Subject: RE: Re:RE: Re:RE: Re:BUG #18369: logical decoding core on AssertTXNLsnOrder()