PostgreSQLでユーザに権限を付与する

はじめに

操作するデータベースの権限をユーザへ付与します。

前提

以下の記事を参考にして、データベースを作成します。
wanouri.hatenablog.com

スキーマ作成

以下のコマンドを実行して、スキーマを作成します。

CREATE SCHEMA sample_schema;

f:id:wanouri:20190824185437p:plain
スキーマ作成

テーブル作成

以下のようなテーブルを作成します。

項目 バイト数
ITEM smallint 2
NAME varchar 10
psql -U hoge -d sampledb
  • CREATE TABLE コマンドでテーブルを作成します。
  • ¥dtコマンドで、テーブルを一覧を表示して確認します。
CREATE TABLE ITEMS( ITEM integer, NAME varchar(10));

f:id:wanouri:20190823170758p:plain
テーブル作成

  • 主キーを設定します。
ALTER TABLE ITEMS ADD PRIMARY KEY(ITEM);

テーブル操作の権限を変更

以下、権限の内容です。

権限 内容
CONNECT データベースに接続できます。
SELECT テーブルおよびビューのデータを取得できます。
INSERT テーブルにデータを追加できます。
UPDATE テーブルのデータを更新できます。
DELETE テーブルからデータを削除できます。
TRUNCATE テーブルのデータを全削除できます。
REFERENCES テーブルおよびカラムに外部キーの制約を作成できます。
TRIGGER トリガを作成できます。
CREATE データベースのスキーマを作成できます。
スキーマのテーブルなどのオブジェクトを作成できます。
USAGE スキーマのオブジェクトへのアクセスができます。
スキーマ以外では、対象に応じた権限がしようできます。
TEMPORARY 一時テーブルを作成できます。
EXECUTE ファンクションやプロシージャおよび演算子の使用ができます。
ALL PRIVILEGES 利用可能な権限をすべて許可します。
  • 以下は、itemsテーブルにSELECT 権限を与えています。
GRANT SELECT ON items TO hoge;
  • 以下は、items全てのテーブルにALL PRIVILEGES 権限を与えています。
GRANT ALL PRIVILEGES ON ALL TABLES IN SCHEMA sample_schema TO hoge;

f:id:wanouri:20190824190407p:plain
全てのテーブルにALL PRIVILEGES