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
2010/8/10 Kasia Tuszynska <ktuszynska@xxxxxxxx>
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