■グループ管理
アクセス権をグループごとに付与する
CREATE GROUP [GroupName];
※グループ作成
ALTER GROUP [GroupName] ADD
USER [UserName];
※グループへユーザー追加
ALTER GROUP [GroupName] DROP
USER [UserName];
※グループからユーザー削除
■テーブル / ビュー / シーケンス
GRANT ALL ON [TableName] TO
[GroupName];
GRANT SELECT,INSERT,UPDATE,DELETE,RULE,REFERENCES,TRIGGER
ON [TableName1],[TableName2] TO
[UserName];
権限剥奪
REVOKE ALL ON [TableName] FROM
[GroupName];
REVOKE SELECT,INSERT,UPDATE,DELETE,RULE,REFERENCES,TRIGGER
ON [TableName1],[TableName2] FROM
[UserName];
■データベース
GRANT ALL ON DATABASE [DbName] TO
[GroupName];
GRANT CREATE,TEMPORARY,TEMP DATABASE [DbName1],[DbName2]
TO [UserName];
権限剥奪
REVOKE ALL ON DATABASE [DbName] FROM
[GroupName];
REVOKE CREATE,TEMPORARY,TEMP DATABASE [DbName1],[DbName2]
FROM [UserName];
■アクセス権の確認
テーブル / ビュー / シーケンス
\z
表示結果
[UserName1] =a*r*w*d*R*x*t*/[UserName2]
※もし、"="の左側か空の場合は、すべてのユーザー(PUBLIC)に対する権限
※[UserName2]によって[UserName1]に与えられた権限
※a=INSERT / r=SELECT / w=UPDATE / d=DELETE / R=CREATE RULE / x=外部キーの作成 / t=CREATE
TRIGGER の権限がある
※*=直前の権限を付与できる
データベース
SELECT datname,datacl FROM pg_database;
表示結果
datname | datacl -----------+---------------------------------------------------------- test | {=T/user1,user1=CT/user1,group1=CT/user1}※T=一時テーブルの作成権限 / C=スキーマを作る権限