スキーマの権限の削除
すべてのユーザのスキーマのオブジェクトの作成権限の削除。
REVOKE ALL PRIVILEGES ON SCHEMA public FROM PUBLIC;
このあとに、必要な権限を付与していく。
GRANT ALL PRIVILEGES ON SCHEMA public TO GROUP testadmins;
権限がないユーザだと、以下のようにテーブルを作成もできないし、スキーマに存在するテーブルを確認することもできない。
test=> CREATE TABLE testtable(id INTEGER, name VARCHAR(20), PRIMARY KEY(iD)); NOTICE: CREATE TABLE / PRIMARY KEY will create implicit index "testtable_pkey" for table "testtable" ERROR: no schema has been selected to create in test=> \d No relations found.
権限を削除したあとにユーザを作成してみる。その後、同様のことをしてみると、
test=> CREATE TABLE testtable(id INTEGER, name VARCHAR(20), PRIMARY KEY(iD)); NOTICE: CREATE TABLE / PRIMARY KEY will create implicit index "testtable_pkey" for table "testtable" ERROR: no schema has been selected to create in test=> \d No relations found.
PUBLICがだめなので、その後にユーザを作成しても適切に権限を付与しないとだめなようです。
ややうそを書いているかも。また検証します。