Re: Define permissions at database level - Mailing list pgsql-general

From dipti shah
Subject Re: Define permissions at database level
Date
Msg-id d5b05a951002180254r662a5e24vdf490898e7993f9d@mail.gmail.com
Whole thread Raw
In response to Re: Define permissions at database level  (Richard Huxton <dev@archonet.com>)
Responses Re: Define permissions at database level  (Richard Huxton <dev@archonet.com>)
List pgsql-general
Okay then I think below works:
 
   1. Revoke permission ALL permissions from PUBLIC on schema. 
 
              REVOKE ALL ON ALL TABLES IN SCHEMA mySchema FROM PUBLIC;
 
   2. Give store procedure for creating table with SECURITY DEFINER marked so that all tables owner will be "postgres" user.
   3. Grant SELECT permission to required group on created table.
   4. Give store procedure for droping the table with SECURITY DEFINER marked so that droping will happen in the context of "postgres" user.
 
I think above will not allow anyone to create and/or drop tables directly without using store procedures.
 
Please let me know if I am missing anything.
 
Thanks for being there.
Dipti

On Thu, Feb 18, 2010 at 4:09 PM, Richard Huxton <dev@archonet.com> wrote:
On 18/02/10 10:34, dipti shah wrote:
Actually, I don't want table owners to drop the table using DROP command
directly. They have to use stored procedure to drop the table.

Then don't let them own the table. Or rather, the role they log in to the database as shouldn't.

--
 Richard Huxton
 Archonet Ltd

pgsql-general by date:

Previous
From: Richard Huxton
Date:
Subject: Re: Define permissions at database level
Next
From: Richard Huxton
Date:
Subject: Re: Define permissions at database level