Re: postgres function does not handle PUBLIC - expected? - Mailing list pgsql-admin

From charlie derr
Subject Re: postgres function does not handle PUBLIC - expected?
Date
Msg-id 4C61AA77.1040606@simons-rock.edu
Whole thread Raw
In response to postgres function does not handle PUBLIC - expected?  (Kasia Tuszynska <ktuszynska@esri.com>)
List pgsql-admin
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:mabewlun@gmail.com]
> *Sent:* Tuesday, August 10, 2010 12:11 PM
> *To:* Kasia Tuszynska
> *Cc:* pgsql-admin@postgresql.org
> *Subject:* Re: [ADMIN] postgres function does not handle PUBLIC - expected?
>
>
>
> 2010/8/10 Kasia Tuszynska <ktuszynska@esri.com <mailto:ktuszynska@esri.com>>
>
> 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
>


pgsql-admin by date:

Previous
From: Szymon Guz
Date:
Subject: Re: postgres function does not handle PUBLIC - expected?
Next
From: "Kevin Grittner"
Date:
Subject: Re: postgres function does not handle PUBLIC - expected?