Re: create role/user management
"David G. Johnston" <[email protected]> Mon, 6 May 2019 13:08:19 -0700
| Newsgroups | gmane.comp.db.postgresql.sql |
|---|---|
| Message-ID | <CAKFQuwZzDqi9Ci4HgxxBxZccuguskx_9e6+Xmq5y+VMOqf3O=A@mail.gmail.com> |
On Mon, May 6, 2019 at 12:52 PM Steve Midgley <[email protected]> wrote: > On Mon, May 6, 2019 at 12:44 PM David G. Johnston < > [email protected]> wrote: > >> On Sat, May 4, 2019 at 9:38 AM Kirti Adesara <[email protected]> >> wrote: >> >>> I have a database with multiple tables, functions and triggers in public >>> schema. >>> >> >> You should stop using the public schema. >> >> I want to create a user that can login to database and select on specific >>> tables and cannot access to any functions, triggers and specific tables. >>> >> >> Maybe provide an example what what is not presently working the way you >> expect and describe how you would like it to work - after refraining from >> using the public schema. >> > > Thanks as always David for your contributions here. My question is mildly > off-topic, but our engineering team was recently discussing this great wiki > page (https://wiki.postgresql.org/wiki/Don%27t_Do_This). > > Can you explain why this user should stop using public schema? Is that a > general principle or related to this user's situation? (If general, should > we add it to the "Don't Do This" page?) > In general the default permissions around the PUBLIC "group" and public schema mean that its difficult to know for certain whether you are dealing with an exclude-everything based permission tree. Avoiding anything to do with the "public" role/schema beyond initial learning of the system is something I recommend generally. Any system of non-trivial complexity should use schemas to describe different categories of objects. "public" is a catch-all category that should go unused as everything should be assigned to a well defined category/schema. David J.