> On Aug 10, 2021, at 10:59 PM, vignesh C <vignesh21@gmail.com> wrote:
>
> Also, the behavior of "Alter publication drop table" for which the
> user is not the owner is successful, Is this behavior correct?
I think that dropping a table from a publication should be allowed for the publication owner, without regard to the
ownerof the table. Adding a table to a publication is different, as it exposes the contents of the table.
Consider the following:
+create user user1;
+create user user2;
+create table tbl1(c1 int);
+create table tbl2(c1 int);
+create publication pub1 for table tbl1,tbl2;
+WARNING: wal_level is insufficient to publish logical changes
+HINT: Set wal_level to logical before creating subscriptions.
+alter table tbl1 owner to user1;
+alter publication pub1 owner to user1;
+alter table tbl2 owner to user2;
+SET SESSION AUTHORIZATION user2;
+alter publication pub1 drop table tbl1;
+ERROR: must be owner of publication pub1
+alter publication pub1 drop table tbl2;
+ERROR: must be owner of publication pub1
+alter publication pub1 add table tbl1;
+ERROR: must be owner of publication pub1
+alter publication pub1 add table tbl2;
+ERROR: must be owner of publication pub1
+RESET SESSION AUTHORIZATION;
+SET SESSION AUTHORIZATION user1;
+alter publication pub1 drop table tbl1;
+alter publication pub1 drop table tbl2;
+alter publication pub1 add table tbl1;
+alter publication pub1 add table tbl2;
+ERROR: must be owner of table tbl2
Clearly user2 cannot modify pub1, not even with respect to user2's own table. user1 can modify its own publication
exceptfor adding someone else's table. This seems correct to me.
—
Mark Dilger
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company