Re: pg18: Virtual generated columns are not (yet) safe when superuser selects from them

From: Isaac Morland <isaac(dot)morland(at)gmail(dot)com>
To: jian he <jian(dot)universality(at)gmail(dot)com>
Cc: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>, Jeff Davis <pgsql(at)j-davis(dot)com>, "David G(dot) Johnston" <david(dot)g(dot)johnston(at)gmail(dot)com>, Robert Haas <robertmhaas(at)gmail(dot)com>, Feike Steenbergen <feikesteenbergen(at)gmail(dot)com>, PostgreSQL mailing lists <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: pg18: Virtual generated columns are not (yet) safe when superuser selects from them
Date: 2025-06-03 03:03:17
Message-ID: CAMsGm5f-HP-OQ5BGpgB8wFW-GjtR=k2KU3qW_ECqyYx=gFJ74A@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

On Mon, 2 Jun 2025 at 22:52, jian he <jian(dot)universality(at)gmail(dot)com> wrote:

Do we consider INSERT associated with user defined function a security
> bug? for
> example, the following, INSERT with a check constraint.
>

[....]

If so, then it's a very old issue...
>

A very old issue for INSERT/UPDATE/DELETE, but until this patch not an
issue for SELECT from a table (although if I understand correctly earlier
discussion SELECT from a view can already be a problem).

That being said I would like to see it corrected everywhere. My fix would
be for check constraints, triggers, and view definitions to run as the
owner of the object in question (constraint, trigger, or view or
materialized view), essentially using the same facility as used to run
security definer functions. Then, as an optimization only, skip actually
doing the security definer stuff (which I understand to be slow) when it
can be proven by the planner to be safe to do so (i.e., no difference in
result).

Of course in just a few sentences I proposed a research project that could
probably generate dozens of PhD theses, and I'm not volunteering to do any
of this at least not in the near future. But I hope I made clear what is
different about this proposal from the existing situation.

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Tom Lane 2025-06-03 03:30:08 Re: pg18: Virtual generated columns are not (yet) safe when superuser selects from them
Previous Message jian he 2025-06-03 02:51:27 Re: pg18: Virtual generated columns are not (yet) safe when superuser selects from them