LoginSignup
4
3

More than 5 years have passed since last update.

postgresのアクセス権限付け

Posted at

postgresqlをインストールした後は、デフォルトではユーザはpostgresしか存在せず、superuserであるので、別のユーザを作成してリモートではそのユーザで処理するのが安全なのかなと思う。

新しく作成したユーザのDBに対してのアクセス権限のつけ方をメモしておく

すでにあるテーブルに対して権限付け

例えば、"connect" というユーザを作成し、このユーザはDB内のテーブルにはselect,insert,updateしか許可しないとする(こうすれば、リモートからはconnectユーザでアクセスすれば、誤ってデータを消す可能性は減る)
権限付けは、superuserでDBに入って以下のコマンド
GRANT select,insert,update ON ALL TABLES IN SCHEMA public TO connect;
これで、すでに作成されているDB内テーブル全てにアクセス制限可能

これから作成するテーブルに対してデフォルトで権限付け

DB内でこれから作成するテーブルに対しても権限付けをすることが可能
上記と同様の権限付けをデフォルトとする場合は以下のコマンド
ALTER DEFAULT PRIVILEGES IN SCHEMA public GRANT select,insert,update ON TABLES TO connect;

もちろん、テーブル名を変更すればテーブル個別でアクセス権限をつけることも可能だし、コマンドも変えられる。

4
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
3