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

広告
eyecatch

ALTER ROLE コマンドを使うことで作成済みのロールの名前を変更することができます。ここではロールの名前を変更する方法について解説します。

※ ALTER ROLE コマンドを使ってロールの属性を変更する方法については「ロールの属性を変更する(ALTER ROLE)」を参照されてください。

ロールの名前を変更する

ロールの名前を変更するには 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 コマンドを使って作成済みのロールの名前を変更する方法について解説しました。

PostgreSQLの使い方の他の記事を見てみる

( Written by Tatsuo Ikura )

関連記事 (一部広告含む)
Profile
profile_img

著者 / TATSUO IKURA

初心者~中級者の方を対象としたプログラミング方法や開発環境の構築の解説を行うサイトの運営を行っています。