ロールの名前を変更する(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

ロールの名前を変更する(1)

現在 3 つのロールが作成されています。

それでは momo ロールの名前を fruit に変更します。次のように実行してください。

alter role momo rename to fruit;

ロールの名前を変更する(2)

momo ロール名が変更されました。またこのロールは認証方法として md5 を使用していたため、 NOTICE: ロール名が変更されたためMD5パスワードがクリアされました と表示されているようにパスワードが空となりました。

そこで ALTER ROLE コマンドを使って接続用のパスワードを再度設定します。(ALTER ROLE コマンドはロール名の変更以外にロールの属性を変更する場合にも使用します。詳しくは「ロールの属性を変更する(ALTER ROLE)」を参照してください)。

alter role fruit with password 'peach';

ロールの名前を変更する(3)

fruit ロールの接続用パスワードが設定されました。

それでは確認のために再度作成済みのロールの一覧を確認しておきます。

ロールの名前を変更する(4)

momo ロールが fruit ロールに名前が変更されていることが確認できました。ロールに設定されていた属性はそのままとなっています。

-- --

ALTER ROLE コマンドを使って作成済みのロールの名前を変更する方法について解説しました。

( Written by Tatsuo Ikura )

Profile
profile_img

著者 / TATSUO IKURA

プログラミングや開発環境構築の解説サイトを運営しています。