How do I keep a user from being able to create tables in the public schema?
I have tried REVOKE CREATE FROM user ON SCHEMA PUBLIC but they can still create tables.
The user has no special attributes and is not a member of another role.

Code:
mjacobson@zeus=>[local]:ises=> \dn+ public
                          List of schemas
  Name  |  Owner   |  Access privileges   |      Description
--------+----------+----------------------+------------------------
 public | postgres | postgres=UC/postgres+| standard public schema
        |          | =UC/postgres        +|
        |          | webuser=U/postgres   |
(1 row)

mjacobson@zeus=>[local]:ises=> select current_user;
 current_user
--------------
 mjacobson
(1 row)

mjacobson@zeus=>[local]:ises=> \du+ mjacobson
                  List of roles
 Role name | Attributes | Member of | Description
-----------+------------+-----------+-------------
 mjacobson |            | {}        |

mjacobson@zeus=>[local]:ises=> create table tb_foo(i int);
CREATE TABLE
mjacobson@zeus=>[local]:ises=> drop table tb_foo;
DROP TABLE