Jeff Davis <pg...@j-davis.com> writes: > 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?
We consider that DELETE WHERE <condition> requires SELECT privilege on the column(s) read by the <condition>. I suppose that the point here is to enforce the same privilege checks that occur in normal SQL operation, so yes. > 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? BEGIN; DELETE FROM tab WHERE col = 'foo'; -- note deletion count ROLLBACK; Now you have some information about whether "col" contains 'foo'. Admittedly, it might be a pretty low-bandwidth way to extract data, but we still regard it as a privilege issue. regards, tom lane