テーブル生成を禁止する方法はありますでしょうか?
スキーマに対しての権限を与えます。
スキーマの中にテーブルなどのオブジェクトを作成する権限を追加する
追記
設定可能な権限に対して剥奪はできますけど、CREATE対象のオブジェクトとしてテーブルという概念はなさそうなので、剥奪は出来ないのではないかと思います。
GRANT — アクセス権限を定義する
CREATE
対象がデータベースの場合は、データベース内での新規スキーマの作成を許可します。
対象がスキーマの場合は、スキーマ内での新規オブジェクトの作成を許可します。 既存のオブジェクトの名前を変更するには、オブジェクトを所有し、かつ、そのオブジェクトが入っているスキーマに対してこの権限を保持していなければなりません。
対象がテーブル空間の場合は、テーブル空間内でのテーブルとインデックス、一時ファイルの作成と、デフォルトのテーブル空間としてこのテーブル空間を持つデータベースの作成を許可します (この権限の取り消しによって既存のデータベースやスキーマの配置が変わることはないことに注意してください)。
逆を言えば、指定したDB内の指定したスキーマ内のテーブルをSELECTだけできればよいです。
スキーマーに対してまとめて行うなら
SQL
1GRANT SELECT ON ALL TABLES IN SCHEMA schema_name To role_name;
若しくはREVOKEで指定しているスキーマーが不足しているのではないでしょうか。