- Home ›
- PostgreSQLの使い方 ›
- ロール(ユーザー)の作成 ›
- HERE
ロールの変更
広告
一度作成したロールの属性を変更することが出来ます。基本的に「CREATE ROLE」で設定出来た属性を全て変更可能です。変更するにはスーパーユーザーか「CREATEROLE」権限を持っていなければいけません。「CREATEROLE」権限を持つロールは、スーパーユーザー以外のロールの属性を変更可能です。またそれ以外のロールは、自分のパスワードの変更だけが可能となっています。
変更するには「ALTER ROLE」を使います。構文としては下記のようになります。
ALTER ROLE name [ [ WITH ] option [ ... ] ] ここでoptionは以下の通りです。 SUPERUSER | NOSUPERUSER | CREATEDB | NOCREATEDB | CREATEROLE | NOCREATEROLE | CREATEUSER | NOCREATEUSER | INHERIT | NOINHERIT | LOGIN | NOLOGIN | CONNECTION LIMIT connlimit | [ ENCRYPTED | UNENCRYPTED ] PASSWORD 'password' | VALID UNTIL 'timestamp' ALTER ROLE name RENAME TO newname ALTER ROLE name SET parameter { TO | = } { value | DEFAULT } ALTER ROLE name RESET parameter
基本的には「CREATE ROLE」と同じで下記のような感じです。
ALTER ROLE role_name WITH PASSWORD 'password' ALTER ROLE role_name WITH CREATEROLE CREATEDB
またロール名の変更も可能です。ロール名変更に必要な権限は先ほどと同じです。
ALTER ROLE role_name TO new_role_name
では実際に試して見ます。まずロールを1つ作成します。
このロールの「createdb」権限を無くし「createrole」権限を付けてみます。
alter role testrole with createrole nocreatedb;
次にパスワードも変更してみます。
alter role testrole with password 'roletest';
( Written by Tatsuo Ikura )