postgreSQLでロール関連のコマンドをまとめました。
自分用にメモしていたものを公開します。
※#から始まるコマンドはpsql内で、$から始まるコマンドはpsql外で実行するコマンドになります。
- ロール一覧の表示
- 新しいロールを作成
- スーパーユーザの作成
- データベース作成権限を持つロールの作成
- ロールを作成する権限を持つ
- ロールの属性の変更
- CREATE ROLE の権限の削除
- 接続用パスワードの変更
- ロール名の変更
- ロールのパスワードの設定
- パスワードの有効期限の設定
- ロールの有効期限の変更
- パスワードの有効期限を取り消す
- ロールの権限の追加
- すべての権限の追加(SELECT,INSERT,UPDATE,DELETE,TRUNCATE,REFERENCES,TRIGGER)
- 指定したスキーマの指定な権限を追加
- テーブルのカラムに対する権限を追加
- スキーマを作成する権限を追加
- スキーマの中にテーブルなどのオブジェクトを作成する権限を追加
- スキーマの中にテーブルなどのオブジェクトをアクセスする権限を追加
- ロールに追加されている権限を削除
- SELECTとINSERTの権限を削除
- オブジェクトの所有権を別のロールに変更
- ロールを削除
ロール一覧の表示
\du
新しいロールを作成
CREATE ROLE name [[ WITH ]] option [..] ]
例:
# create role test with login password ‘test2’;
# create role test with login password ‘test2’;
スーパーユーザの作成
# CREATE ROLE <ロール名> WITH SUPERUSER;
データベース作成権限を持つロールの作成
# CREATE ROLE <ロール名> WITH CREATEDB;
ロールを作成する権限を持つ
# CREATE ROLE <ロール名> WITH CREATEROLE;
ロールの属性の変更
# ALTER ROLE <ロール名> WITH option [..];
CREATE ROLE の権限の削除
# alter role <ロール名> with nocreaterole connection limit 3;
接続用パスワードの変更
# alter role session_user with password ‘<新_パスワード>’;
ロール名の変更
ALTER ROLE <旧_ロール名> RENAME TO <新_ロール名>;
ロールのパスワードの設定
ALTER ROLE <ロール名> with password ‘<パスワード>’;
パスワードの有効期限の設定
CREATE ROLE <ロール名> WITH LOGIN PASSWORD ‘<パスワード>’ VALID UNTIL ‘timestamp’;
※timestamp:’2099-12-31 00:00:00′
※timestamp:’2099-12-31 00:00:00′
ロールの有効期限の変更
ALTER ROLE <ロール名> WITH VALID UNTIL ‘timestamp’;
パスワードの有効期限を取り消す
ALTER ROLE <ロール名> WITH VALID UNTIL ‘infinity’;
ロールの権限の追加
GRANT 権限 ON 対象 TO 誰に
例:
GRANT SELECT,INSERT ON table_name TO role_name;
GRANT SELECT,INSERT ON table_name TO role_name;
すべての権限の追加(SELECT,INSERT,UPDATE,DELETE,TRUNCATE,REFERENCES,TRIGGER)
GRANT ALL PRIVILEGES ON table_name TO role_name;
指定したスキーマの指定な権限を追加
GRANT SELECT ON ALL TABLES IN SCHEMA schema_name TO role_name;
テーブルのカラムに対する権限を追加
GRANT SELECT(column_name) ON table_name TO role_name;
スキーマを作成する権限を追加
GRANT CREATE ON DATABASE database_name TO role_name;
スキーマの中にテーブルなどのオブジェクトを作成する権限を追加
GRANT CREATE ON SCHEMA schema_name TO role_name;
スキーマの中にテーブルなどのオブジェクトをアクセスする権限を追加
GRANT USAGE ON SCHEMA schema_name TO role_name;
ロールに追加されている権限を削除
REVOKE 権限 ON 対象 FROM 誰から
SELECTとINSERTの権限を削除
REVOKE SELECT,INSERT ON table_name FROM role_name;
オブジェクトの所有権を別のロールに変更
REASSIGN OWNED BY old_role [,..] TO new_role;
ロールを削除
DROP ROLE [IF EXISTS] name;