作成したユーザのALTER ROLEをつかってロールを変更する操作例を以下に記します。
(ALTER USERはALTER ROLEの別名になっています。したがって、ALTER ROLEをALTER USERにしても同様の動作になります。)
使用したOSはCentOS6になります。
また、使用したPostgreSQLのバージョンは以下の通りです。
postgres=# select version();
version
------------------------------------------------------------------------------------------------------------------
PostgreSQL 8.4.13 on x86_64-redhat-linux-gnu, compiled by GCC gcc (GCC) 4.4.6 20120305 (Red Hat 4.4.6-4), 64-bit
(1 行)
ユーザを作成して、ALTER ROLEでスーパーユーザ権限などを付与してみます。
postgres=# create user sakura with password 'sakurapass';
CREATE ROLE
postgres=# create user tsubaki with password 'tsubakipass';
CREATE ROLE
postgres=# \du
ロール一覧
ロール名 | 属性 | メンバー
----------+--------------------+----------
postgres | スーパーユーザ | {}
: ロールを作成できる
: DBを作成できる
sakura | | {}
tsubaki | | {}postgres=# ALTER ROLE sakura WITH SUPERUSER;
ALTER ROLE
postgres=# \du
ロール一覧
ロール名 | 属性 | メンバー
----------+--------------------+----------
postgres | スーパーユーザ | {}
: ロールを作成できる
: DBを作成できる
sakura | スーパーユーザ | {}
tsubaki | | {}
postgres=# ALTER ROLE tsubaki WITH SUPERUSER CREATEDB CREATEROLE;
ALTER ROLE
postgres=# \du
ロール一覧
ロール名 | 属性 | メンバー
----------+--------------------+----------
postgres | スーパーユーザ | {}
: ロールを作成できる
: DBを作成できる
sakura | スーパーユーザ | {}
tsubaki | スーパーユーザ | {}
: ロールを作成できる
: DBを作成できる psqlコマンドでログインし、\hコマンドでALTER ROLEの説明を表示しました。
以下のようにオプションが多数ありますので、必要に応じて設定してください。
postgres=# \h ALTER ROLE
コマンド: ALTER ROLE
説明: データベースのロールを変更する
書式:
ALTER ROLE ロール名 [ [ WITH ] オプション [ ... ] ]
オプションは以下のいずれか:
SUPERUSER | NOSUPERUSER
| CREATEDB | NOCREATEDB
| CREATEROLE | NOCREATEROLE
| CREATEUSER | NOCREATEUSER
| INHERIT | NOINHERIT
| LOGIN | NOLOGIN
| CONNECTION LIMIT 最大接続数
| [ ENCRYPTED | UNENCRYPTED ] PASSWORD 'パスワード'
| VALID UNTIL 'タイムスタンプ'
ALTER ROLE ロール名 RENAME TO 新しい名前
ALTER ROLE ロール名 SET 設定パラメータ名 { TO | = } { 値 | DEFAULT }
ALTER ROLE ロール名 SET 設定パラメータ名 FROM CURRENT
ALTER ROLE ロール名 RESET 設定パラメータ名
ALTER ROLE ロール名 RESET ALL