ロールの名前を変更する(ALTER ROLE)
ALTER ROLE コマンドを使うことで作成済みのロールの名前を変更することができます。ここでは PostgreSQL でロールの名前を変更する方法について解説します。
※ ALTER ROLE コマンドを使ってロールの属性を変更する方法については「ロールの属性を変更する(ALTER ROLE)」を参照されてください。
(Last modified: )
目次
ロールの名前を変更する
ロールの名前を変更するには ALTER ROLE コマンドを使用します。書式は次の通りです。
ALTER ROLE name RENAME TO new_name
対象のロール( role_name )の名前を新しい名前( new_name )に変更します。現在のセッションユーザー(現在の接続時に使用したロール名)の名前は変更することができません。よって自分自身の名前を変更することはできません。
スーパーユーザーはすべてのロールの名前を変更可能です。 CREATEROLE の権限を持つロールはスーパーユーザー以外のロールの名前を変更できます。
なおクライアントの認証方法として md5 を使用している場合、ロール名を変更すると接続用のパスワードが空となりますので新しく設定する必要があります。
-- --
それでは実際に試してみます。スーパーユーザーである postgres で PostgreSQL に接続し、作成済みのロール momo の名前を変更します。
最初に現在作成済みのロールの一覧を確認しておきます。
\du
現在 3 つのロールが作成されています。
それでは momo ロールの名前を fruit に変更します。次のように実行してください。
alter role momo rename to fruit;
momo ロール名が変更されました。またこのロールは認証方法として md5 を使用していたため、 NOTICE: ロール名が変更されたためMD5パスワードがクリアされました と表示されているようにパスワードが空となりました。
そこで ALTER ROLE コマンドを使って接続用のパスワードを再度設定します。(ALTER ROLE コマンドはロール名の変更以外にロールの属性を変更する場合にも使用します。詳しくは「ロールの属性を変更する(ALTER ROLE)」を参照してください)。
alter role fruit with password 'peach';
fruit ロールの接続用パスワードが設定されました。
それでは確認のために再度作成済みのロールの一覧を確認しておきます。
momo ロールが fruit ロールに名前が変更されていることが確認できました。ロールに設定されていた属性はそのままとなっています。
-- --
ALTER ROLE コマンドを使って作成済みのロールの名前を変更する方法について解説しました。
( Written by Tatsuo Ikura )
著者 / TATSUO IKURA
プログラミングや開発環境構築の解説サイトを運営しています。