Kasia Tuszynska wrote:
Szymon,

The PUBLIC role is a default, non login role, that is created with every postgres cluster/instance.

To my knowledge PUBLIC is a standard user in any rdbms. So, existence of public is not the issue here.

Sincerely,

Kasia



Kasia,
I think your assumption is wrong. I've been using postgres for a lot of years and never saw a PUBLIC role created by default in all the installations I've ever done. It's certainly possible that various other RDBMSs may assume the existence of such a role/user, but my experience is that the only default role in "our world" is named postgres.

So I think this does have everything to do with your issue. Why don't you give it a shot and try to create a user named PUBLIC?

      good luck,
        ~c

*From:* Szymon Guz [mailto:[email protected]]
*Sent:* Tuesday, August 10, 2010 12:11 PM
*To:* Kasia Tuszynska
*Cc:* [email protected]
*Subject:* Re: [ADMIN] postgres function does not handle PUBLIC - expected?

2010/8/10 Kasia Tuszynska <[email protected] <mailto:[email protected]>>

Hello Postgres Gurus,

Is it expected behavior for the has_table_privilege postgres function to not handle the user PUBLIC? Or should I submit a bug?

The has_table_privilege function does not handle PUBLIC – the following queries returns the error:

SELECT has_table_privilege ('PUBLIC','bob.gdb.test1','SELECT') AS SELECT,

has_table_privilege ('PUBLIC','bob.gdb.test1','INSERT') AS INSERT,

has_table_privilege ('PUBLIC','bob.gdb.test1','DELETE') AS DELETE,

has_table_privilege ('PUBLIC','bob.gdb.test1','UPDATE') AS UPDATE;

ERROR:  role "PUBLIC" does not exist

SQL state: 42704

SELECT has_table_privilege ('public','bob.gdb.test1','SELECT') AS SELECT,

has_table_privilege ('public','bob.gdb.test1','INSERT') AS INSERT,

has_table_privilege ('public','bob.gdb.test1','DELETE') AS DELETE,

has_table_privilege ('public','bob.gdb.test1','UPDATE') AS UPDATE;

ERROR: role "public" does not exist

SQL state: 42704

Thank you,

Sincerley,

Kasia

Do you have any role that is named PUBLIC? I think that you don't have one. Check e.g. in the table pg_user.

regards

Szymon



--
Sent via pgsql-admin mailing list ([email protected])
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-admin

Reply via email to