postgreSQLのロールに関するコマンド

postgresqlロール postgreSQL

postgreSQLでロール関連のコマンドをまとめました。
自分用にメモしていたものを公開します。
※#から始まるコマンドはpsql内で、$から始まるコマンドはpsql外で実行するコマンドになります。

ロール一覧の表示

\du

新しいロールを作成

CREATE ROLE name [[ WITH ]] option [..] ]
例:
# 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′

ロールの有効期限の変更

ALTER ROLE <ロール名> WITH VALID UNTIL ‘timestamp’;

パスワードの有効期限を取り消す

ALTER ROLE <ロール名> WITH VALID UNTIL ‘infinity’;

ロールの権限の追加

GRANT 権限 ON 対象 TO 誰に
例:
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;
タイトルとURLをコピーしました