PostgreSQLスキルアップノート(自己啓発のための個人サイト)
グループの作成(グループロール)
【一覧に戻る】
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
■■■■ PostgreSQL スキルアップノート
■■■■
■◆■■ グループの作成(グループロール)
■■■■
■■■■
■■■■ 2013/01/27
■■■■ 使用環境:PostgreSQL9.1.7 (CentOS6.2)
(C) 2013 ohdb
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
★自己都合により実機確認は9.1、マニュアルへのリンクは9.2としています。ご了承下さい。
【マニュアル】
第 20章データベースロール→●[マニュアル]
CREATE ROLE→●[マニュアル]
【記事】
−
■1■ 実施する内容
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
・オブジェクトの所有者となるユーザu0、及び利用者となるユーザu1,u2を作成する。
・ユーザu0と同名のスキーマu0を作成する。
・u0がu0スキーマの中にテーブルt1を作成する。
・その利用者をまとめて権限管理するためのグループgr0を作成する。
・u1とu2を同じグループに属させる(gr0)
・グループgr0にt1テーブルへのSELECT権限を与える。
ユーザ u0 スキーマu0とテーブルu0.t1を所有
gr0のメンバ ユーザu1
ユーザu2
gr0のメンバはu0.t1への参照権限をもつ。
■2■ ユーザu0の作成
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
【□】 createuser -P -S -D -R u0
【□】 createuser -P -S -D -R u1
【□】 createuser -P -S -D -R u2
※本ページではユーザの作成はcreateuserコマンドの使用で統一。
■3■ スキーマu0の作成
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
【□】 psql database1 dba01
【□】 CREATE SCHEMA AUTHORIZATION u0;
■4■ テーブルu0.t1の作成
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
【□】 \c - u0
【□】 CREATE TABLE u0.t1 (c1 TEXT);INSERT INTO u0.t1 VALUES('test');
■5■ グループ(グループロール)の作成
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
ここではCREATE ROLEを使用する。
【□】 \c - dba01
【□】 CREATE ROLE gr0;
【参考】グループを作成する場合はLOGIN権限を与えない。
■6■ グループへのメンバ追加
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
【□】 GRANT gr0 TO u1,u2;
■7■ グループロールに権限を付与
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
・gr0にt1テーブルへのSELECT権限を与える。
・しかしt1テーブルはu0というスキーマ内にあるのでそのスキーマへのUSAGE権限も与える必要がある。
【□】 GRANT USAGE ON SCHEMA u0 TO gr0;
【□】 GRANT SELECT ON u0.t1 TO gr0;
■8■ 確認1・メンバu1,u2によるテスト
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
【□】 \c - u1
【□】 select * from u0.t1;
c1
------
test
(1 行)
【□】 \c - u2
【□】 select * from u0.t1;
c1
------
test
(1 行)
■9■ 確認2・各設定状況
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
ロールの作成状況(\du・・ユーザのu)
【□】 \du+ u[012]*|gr0 uで始まり次が012のいずれかまたはgr0(今回*は本来不要)
ロール一覧
ロール名 | 属性 | メンバー | 説明
----------+------------------+----------+------
gr0 | ログインできない | {} |
u0 | | {} |
u1 | | {gr0} |
u2 | | {gr0} |
スキーマの作成状況(\dn・・名前空間のn)
【□】 \dn+ u0
スキーマ一覧
名前 | 所有者 | アクセス権 | 説明
------+--------+------------+------
u0 | u0 | u0=UC/u0 +|
| | gr0=U/u0 |
テーブルなどのアクセス権(\dp・・privilegeのp) \zも同じ
【□】 \dp u0.*
アクセス権
スキーマ | 名前 | 型 | アクセス権 | カラムのアクセス権限
----------+------+----------+---------------+----------------------
u0 | t1 | テーブル | u0=arwdDxt/u0+|
| | | gr0=r/u0 |
以上