Re: Column Filtering in Logical Replication

From: Peter Eisentraut <peter(dot)eisentraut(at)enterprisedb(dot)com>
To: Alvaro Herrera <alvherre(at)alvh(dot)no-ip(dot)org>, Rahila Syed <rahilasyed90(at)gmail(dot)com>
Cc: PostgreSQL-development <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: Column Filtering in Logical Replication
Date: 2021-12-20 13:53:46
Message-ID: d4670f87-70f9-732e-fa65-f77f31a6d492@enterprisedb.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

On 17.12.21 22:07, Alvaro Herrera wrote:
> So I've been thinking about this as a "security" item (you can see my
> comments to that effect sprinkled all over this thread), in the sense
> that if a publication "hides" some column, then the replica just won't
> get access to it. But in reality that's mistaken: the filtering that
> this patch implements is done based on the queries that *the replica*
> executes at its own volition; if the replica decides to ignore the list
> of columns, it'll be able to get all columns. All it takes is an
> uncooperative replica in order for the lot of data to be exposed anyway.

During normal replication, the publisher should only send the columns
that are configured to be part of the publication. So I don't see a
problem there.

During the initial table sync, the subscriber indeed can construct any
COPY command. We could maybe replace this with a more customized COPY
command variant, like COPY table OF publication TO STDOUT.

But right now the subscriber is sort of assumed to have access to
everything on the publisher anyway, so I doubt that this is the only
problem. But it's worth considering.

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Peter Eisentraut 2021-12-20 13:58:06 Re: PublicationActions - use bit flags.
Previous Message Alvaro Herrera 2021-12-20 13:46:13 Re: Addition of --no-sync to pg_upgrade for test speedup