On Sat, 2022-01-08 at 15:35 +0530, Amit Kapila wrote: > On Sat, Jan 8, 2022 at 1:01 PM Jeff Davis <pg...@j-davis.com> wrote: > > > > On Sat, 2022-01-08 at 12:27 +0530, Amit Kapila wrote: > > > For Update/Delete, we do read the table first via > > > FindReplTupleInLocalRel(), so is there a need to check ACL_SELECT > > > before that? > > > > If it's logically an update/delete, then I think ACL_UPDATE/DELETE > > is > > the right one to check. Do you have a different opinion? > > > > But shouldn't we do it the first time before accessing the table?
I'm not sure I follow the reasoning. Are you saying that, to logically replay a simple DELETE, the subscription owner should have SELECT privileges on the destination table? Is there a way that a subscription owner could somehow exploit a DELETE privilege to see the contents of a table on which they have no SELECT privileges? Or is it purely an internal read, which is necessary for any ordinary local DELETE/UPDATE anyway? Regards, Jeff Davis