Re: Non-superuser subscription owners
Amit Kapila <amit.kapila16@gmail.com>
From: Amit Kapila <amit.kapila16@gmail.com>
To: Jeff Davis <pgsql@j-davis.com>
Cc: Mark Dilger <mark.dilger@enterprisedb.com>,
Andrew Dunstan <andrew@dunslane.net>, PostgreSQL-development <pgsql-hackers@postgresql.org>,
Robert Haas <robertmhaas@gmail.com>
Date: 2021-11-19T10:23:08Z
Lists: pgsql-hackers
On Fri, Nov 19, 2021 at 12:00 AM Jeff Davis <pgsql@j-davis.com> wrote: > > On Wed, 2021-11-17 at 16:17 -0800, Mark Dilger wrote: > > You must choose a single role you want the subscription to run > > under. > > I think that was the source of a lot of my confusion: > > Your patches are creating the notion of a "run as" user by assigning > ownership-that-isn't-really-ownership. I got distracted wondering why > you would really care if some user could enable/disable/refresh/rename > a subscription, but the main point was to change who the subscription > runs as. > > That's a more general idea: I could see how "run as" could apply to > subscriptions as well as functions (right now it can only run as the > owner or the invoker, not an arbitrary role). And I better understand > your analogy to security definer now. > I was thinking why not separate the ownership and "run as" privileges for the subscriptions? We can introduce a new syntax in addition to the current syntax for "Owner" for this as: Create Subscription sub RUNAS <role_name> ...; Alter Subscription sub RUNAS <role_name> Now, RUNAS role will be used to apply changes and perform the initial table sync. The owner will be tied to changing some of the other properties (enabling, disabling, etc.) of the subscription. Now, we still need a superuser to create subscription and change properties like CONNECTION for a subscription but we can solve that by having roles specific to it as being indicated by Mark in some of his previous emails. -- With Regards, Amit Kapila.
Commits
Same data as JSON:
GET /api/v1/messages/:b64id/commits
the thread's linked commits as JSON, with link sources.
API reference →
-
Fix possible crash in tablesync worker.
- b5c517379a40 16.0 landed
-
Display 'password_required' option for \dRs+ command.
- 19e65dff38bd 16.0 landed
-
Restart the apply worker if the 'password_required' option is changed.
- c1cc4e688b60 16.0 landed
-
Fix possible logical replication crash.
- e7e7da2f8d57 16.0 landed
-
Add new predefined role pg_create_subscription.
- c3afe8cf5a1e 16.0 landed
-
Expand AclMode to 64 bits
- 7b378237aa80 16.0 cited
-
More cleanup of a2ab9c06ea.
- 96a6f11c0625 15.0 landed
-
Respect permissions within logical replication.
- a2ab9c06ea15 15.0 landed
-
Improve table locking behavior in the face of current DDL.
- 2ad36c4e44c8 9.2.0 cited