Thanks Tom, I think I'm still doing something wrong. As a superuser I run: #revoke create on schema public from public; REVOKE As the read only user straight after running the above: create table barney2(col1 integer); CREATE TABLE \d barney2 Table "public.barney2" Column | Type | Modifiers --------+---------+----------- col1 | integer | What should I try next? Presumably the privilege is being inherited from another role? Cheers Pif -- The Wellcome Trust Sanger Institute is operated by Genome Research Limited, a charity registered in England with number 1021457 and a company registered in England with number 2742969, whose registered office is 215 Euston Road, London, NW1 2BE. -- Sent via pgsql-general mailing list (pgsql-general@xxxxxxxxxxxxxx) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-general