> 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
well... surprisingly that works... does the public role exist in the SQL standard? why it is not in the pg_roles table?