How to allow users to create and modify tables only in their own schemas, but with generic table owner

From: Schmid Andreas <Andreas(dot)Schmid(at)bd(dot)so(dot)ch>
To: "'pgsql-general(at)lists(dot)postgresql(dot)org'" <pgsql-general(at)lists(dot)postgresql(dot)org>
Subject: How to allow users to create and modify tables only in their own schemas, but with generic table owner
Date: 2020-03-06 11:04:50
Message-ID: 523af9d43b78454882a270b0839fe5c1@bd.so.ch
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

Hi List

I'd like to setup my database in a way that only a superuser may create schemas, then grants permission to a specific user to create tables inside this schema. This should work so far with GRANT CREATE ON SCHEMA ... TO user_a. However I want the table owner not to be the user that creates the tables. Instead the owner should rather be a generic role (e.g. table_owner), and the owner should be the same over all tables of the whole database. This would work, too, if I grant membership in role table_owner to all users that may create tables. (The users must issue a SET ROLE table_owner before creating tables.)

What I didn't achieve so far is making sure that user_a who created tables in schema_a cannot crete/modify tables of schema_b that were created by user_b. Do you see any way to achieve this, while still sticking to that generic owner role?

Thanks a lot for your thoughts.

Andy

Responses

Browse pgsql-general by date

  From Date Subject
Next Message stan 2020-03-06 12:57:55 geting results of query in plperl
Previous Message Ron 2020-03-06 09:25:31 Re: Real application clustering in postgres.