Kevin, I know public is there from using it every day, but if it were not for you post I would not know how to prove it, none of the views, graphical admin tools etc. display it as a user. We found this issue because we can grant privs to public on a table, but could not revoke them. If I did not "know" that public was there ( because in my experience it is there in oracle, sql server and the Informix dbs) how would I check for it's existence on Postgres? Thank you, Kasia -----Original Message----- From: Kevin Grittner [mailto:Kevin.Grittner@xxxxxxxxxxxx] Sent: Tuesday, August 10, 2010 12:41 PM To: Kasia Tuszynska; Szymon Guz Cc: pgsql-admin@xxxxxxxxxxxxxx Subject: Re: postgres function does not handle PUBLIC - expected? Szymon Guz <mabewlun@xxxxxxxxx> wrote: > No, there is no PUBLIC default role in ANY rdbms. In PostgreSQL > there is PUBLIC schema, not role. In my PostgreSQL database there > wasn't any such role... but I'll check that now... ok, I've > checked, I've got 15 roles, none is names PUBLIC, what's more, I > don't have any roles that cannot login. > > run simple query: SELECT rolname FROM pg_roles; and check the > existence of the PUBLIC role. Yeah, it's automatically there in a shadowy sort of way. Try this, for example, in your cluster with no PUBLIC role: test=# revoke create on database test from public; REVOKE test=# grant select on pg_class to public; GRANT -Kevin -- Sent via pgsql-admin mailing list (pgsql-admin@xxxxxxxxxxxxxx) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-admin