PostgreSQLでユーザに権限を付与する
はじめに
操作するデータベースの権限をユーザへ付与します。
前提
- Windows10
- PostgreSQL 10.10
以下の記事を参考にして、データベースを作成します。
wanouri.hatenablog.com
スキーマ作成
以下のコマンドを実行して、スキーマを作成します。
CREATE SCHEMA sample_schema;
テーブル作成
以下のようなテーブルを作成します。
項目 | 型 | バイト数 |
---|---|---|
ITEM | smallint | 2 |
NAME | varchar | 10 |
- コマンドプロンプトを開いてログインします。
psql -U hoge -d sampledb
- CREATE TABLE コマンドでテーブルを作成します。
- ¥dtコマンドで、テーブルを一覧を表示して確認します。
CREATE TABLE ITEMS( ITEM integer, NAME varchar(10));
- 主キーを設定します。
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;