As Tom advised, it's called a "public" schema for a reason. It means the
general public (any user) has access to it and can create objects/tables in
it.


On Tue, Jun 2, 2015 at 2:58 PM, Joshua D. Drake <j...@commandprompt.com>
wrote:

>
> On 06/02/2015 11:46 AM, Tom Lane wrote:
>
>> Adrian Klaver <adrian.kla...@aklaver.com> writes:
>>
>>> On 06/02/2015 11:04 AM, Steve Pribyl wrote:
>>>
>>>> I have noted that  "GRANT ALL ON SCHEMA public TO public" is granted
>>>> on postgres.schemas.public.  I am looking at this in pgadmin so excuse
>>>> my nomenclature.
>>>>
>>>
>>  Is this what is allowing write access to the database?
>>>>
>>>
>>  Yes, though that should not be the default.
>>>
>>
>> Huh?  Of course it's the default.  I'm not really sure why the OP is
>> surprised at this.  A database that won't let you create any tables
>> is not terribly useful.
>>
>
> The owner (or super user) should always have access, anybody with access
> should not. This argument has actually come up before and you held a
> similar view. This should not be possible:
>
> postgres@sqitch:/# psql -U postgres
> psql (9.2.11)
> Type "help" for help.
>
> postgres=# create user foo;
> CREATE ROLE
> postgres=# \q
>
> root@sqitch:/# psql -U foo postgres
> psql (9.2.11)
> Type "help" for help.
> postgres=> create table bar (id text);
> CREATE TABLE
> postgres=>
>
> We can adjust this capability with pg_hba.conf but that is external to
> this behavior.
>
> Sincerely,
>
> JD
>
>
>
> --
> Command Prompt, Inc. - http://www.commandprompt.com/  503-667-4564
> PostgreSQL Centered full stack support, consulting and development.
> Announcing "I'm offended" is basically telling the world you can't
> control your own emotions, so everyone else should do it for you.
>



-- 
*Melvin Davidson*
I reserve the right to fantasize.  Whether or not you
wish to share my fantasy is entirely up to you.

Reply via email to