Subject: Re: Q on SELECT column list pushdown from view to table

From: Tom Lane <[email-masked]>
Date: Tue, 25 Mar 2025 18:55:34 -0400

Karsten Hilbert <[email-masked]> writes:
> I expected this:

> 	set role "restricted-role";
> 	-- this works:
> 	select public_col from t_partially_private;
> 	-- this fails: with "permission denied on table t_partially_private"
> 	select public_col from v_partially_private;

> to work but selecting from the view fails.

Works fine if you don't mess with the view's security_invoker
status.

			regards, tom lane

---

From: Karsten Hilbert <[email-masked]>
Date: Wed, 26 Mar 2025 18:24:14 +0100

> Works fine if you don't mess with the view's security_invoker

I know but doing so was kind of the point.

The views are created by a "database owner" role having
access to all tables. Therefore, roles using the views would
normally gain access to tables they are otherwise not
allowed to read. Hence setting security to invoker made a
lot of sense at first sight ...

Perhaps I am misunderstanding the intent of the feature.

Karsten
--
GPG  40BE 5B0E C98E 1713 AFA6  5BC0 3BEA AC80 7D4F C89B