Используя postgresql 8.3, я создал такого пользователя только для чтения:
create role reportuser with login password 'secret';
а затем предоставил выбор для всех таблиц, к которым этот пользователь должен получить доступ.
но я вижу, что этот пользователь может create table x (...
и вставить / обновить / удалить / удалить таблицу.
Есть ли способ удалить разрешения на создание таблиц для этого пользователя в этой базе данных?
Да. Отменить привилегии из общедоступной схемы.