Re: Non-superuser subscription owners - Mailing list pgsql-hackers

From Mark Dilger
Subject Re: Non-superuser subscription owners
Date
Msg-id 92BEDE2A-8043-4F50-9BD8-46977A9A2972@enterprisedb.com
Whole thread Raw
In response to Re: Non-superuser subscription owners  (Jeff Davis <pgsql@j-davis.com>)
Responses Re: Non-superuser subscription owners  (Amit Kapila <amit.kapila16@gmail.com>)
Re: Non-superuser subscription owners  (Jeff Davis <pgsql@j-davis.com>)
List pgsql-hackers

> On Nov 24, 2021, at 4:30 PM, Jeff Davis <pgsql@j-davis.com> wrote:
>
> We need to do permission checking for WITH CHECK OPTION and RLS. The
> patch right now allows the subscription to write data that an RLS
> policy forbids.

Version 4 of the patch, attached, no longer allows RLS to be circumvented, but does so in a course-grained fashion.  If
thetarget table has row-level security policies which are enforced against the subscription owner, the replication
drawsan error, much as with a permissions failure.  This seems sufficient for now, as superusers, roles with bypassrls,
andtarget table owners should be able to replicate as before.  We may want to revisit this later, perhaps if/when we
addressyour ExecInsert question, below. 

>
> A couple other points:
>
> * We shouldn't refer to the behavior of previous versions in the docs
> unless there's a compelling reason

Fixed.

> * Do we need to be smarter about partitioned tables, where an insert
> can turn into an update?

Indeed, the logic of apply_handle_tuple_routing() required a bit of refactoring.  Fixed in v4.

> * Should we refactor to borrow logic from ExecInsert so that it's less
> likely that we miss something in the future?

Let's just punt on this for now.



—
Mark Dilger
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company




Attachment

pgsql-hackers by date:

Previous
From: Florian Koch
Date:
Subject: psql format output
Next
From: Pavel Stehule
Date:
Subject: Re: psql format output