Re: How to prevent users from creating tables

From: raf <raf(at)raf(dot)org>
To: pgsql-admin(at)postgresql(dot)org
Subject: Re: How to prevent users from creating tables
Date: 2009-02-04 14:37:41
Message-ID: 20090204143740.GA25312@raf.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-admin

Milen A. Radev wrote:

> raf ????????????:
> > hi,
> >
> > in my database, normal users can't select, insert, update or
> > delete anything directly. they can only call functions which
> > are all security defining functions which give access to the
> > data. that's the way i like it.
> >
> > however, i discovered that normal users can create new
> > tables in the database. is there any way to prevent this?
> > i couldn't find any grant/revoke syntax in the doco that
> > looked relevant.
> [...]
>
> You need to revoke the "CREATE" privilege for the schema(s) in question
> (http://www.postgresql.org/docs/current/static/sql-grant.html#SQL-GRANT-DESCRIPTION-OBJECTS)
>
> --
> Milen A. Radev

i had revoked all privileges on the database.
i didn't realise this privilege applied to schemas.
so, i'll revoke this privilege from the public schema.

hmm, if i try:

revoke all privileges on schema public from public;
revoke all privileges on schema public from staff; -- staff is a role

then i get two warnings:

WARNING: no privileges could be revoked for "public"
WARNING: no privileges could be revoked for "public"

and a member of the staff role can still create tables.
if i replace "all privileges" with just "create", i
get the same warnings and still no effect.

what did i do wrong?

PostgreSQL 8.3.5 on i386-apple-darwin8.11.1,
compiled by GCC i686-apple-darwin8-gcc-4.0.1
(GCC) 4.0.1 (Apple Computer, Inc. build 5370)

many thanks,
raf

In response to

Responses

Browse pgsql-admin by date

  From Date Subject
Next Message Kevin Grittner 2009-02-04 14:48:35 Re: How to prevent users from creating tables
Previous Message Scott Marlowe 2009-02-04 02:27:23 Re: Warm standby recovery failure