コンピュータクワガタ

かっぱのかっぱによるコンピュータ関連のサイトです

スキーマの権限の削除

すべてのユーザのスキーマのオブジェクトの作成権限の削除。

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がだめなので、その後にユーザを作成しても適切に権限を付与しないとだめなようです。
ややうそを書いているかも。また検証します。