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
ofthe 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"
thatpublic was there ( because in my experience it is there in oracle, sql server and the Informix dbs) how would I
checkfor it's existence on Postgres?
Thank you,
Kasia
-----Original Message-----
From: Kevin Grittner [mailto:Kevin.Grittner@wicourts.gov]
Sent: Tuesday, August 10, 2010 12:41 PM
To: Kasia Tuszynska; Szymon Guz
Cc: pgsql-admin@postgresql.org
Subject: Re: [ADMIN] postgres function does not handle PUBLIC - expected?
Szymon Guz <mabewlun@gmail.com> 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