Re: postgres function does not handle PUBLIC - expected?
От | charlie derr |
---|---|
Тема | Re: postgres function does not handle PUBLIC - expected? |
Дата | |
Msg-id | 4C61AA77.1040606@simons-rock.edu обсуждение исходный текст |
Ответ на | postgres function does not handle PUBLIC - expected? (Kasia Tuszynska <ktuszynska@esri.com>) |
Список | 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 по дате отправления: