PostgreSQL | ロール(ユーザー) ROLE 作成 | ロール名の変更(ALTER ROLE)
ALTER ROLE コマンドを使用して、作成済みロールの名前を変更できる。ここではロール名を変更する方法について説明する。
ロール名を変更する
ロール名を変更するには ALTER ROLE コマンドを使用する。形式は次のとおりである。
ALTER ROLE name RENAME TO new_name
変更対象のロール (role_name) の名前を新しい名前 (new_name) に変更する。現在のセッションユーザー、つまり接続時に使用したロールの名前は変更できない。つまり、自分自身の名前は変更できない。
スーパーユーザーはすべてのロール名を変更できる。CREATEROLE 権限を持つロールは、スーパーユーザーではないロールの名前を変更できる。
また、クライアント認証方式として md5 を使用している場合、ロール名を変更すると接続パスワードが削除されるため、新しく設定する必要がある。
–
それでは実際に試してみる。スーパーユーザー postgres で PostgreSQL に接続し、作成済みロール kuma の名前を変更する。
まず、現在作成されているロール一覧を確認してみる。
postgres=> \du
롤 목록
롤 이름 | 속성 | 소속 그룹:
-----------+------------------------------------------------+------------
kuma | | {}
postgres | 슈퍼유저, 롤 만들기, DB 만들기, 복제, RLS 통과 | {}
superkuma | DB 만들기 +| {}
| 3개 연결 |
postgres=>
現在 3 つのロールが作成されている。
では kuma ロールの名前を mykuma に変更する。次のように実行する。
devkuma=# alter role kuma rename to mykuma;
알림: 롤 이름이 변경 되어 MD5 암호를 지웠습니다
ALTER ROLE
devkuma=#
ロール名が mykuma に変更された。また、このロールは認証方式として md5 を使用していたため、「알림: 롤 이름이 변경 되어 MD5 암호를 지웠습니다」と表示されているように、パスワードが削除された。
そこで ALTER ROLE コマンドを使用して接続パスワードを再設定する。
devkuma=# alter role mykuma with password 'mybear';
ALTER ROLE
devkuma=#
mykuma ロールの接続パスワードが設定された。
確認のため、もう一度作成済みロール一覧を確認してみる。
devkuma=# \du
롤 목록
롤 이름 | 속성 | 소속 그룹:
-----------+------------------------------------------------+------------
mykuma | | {}
postgres | 슈퍼유저, 롤 만들기, DB 만들기, 복제, RLS 통과 | {}
superkuma | DB 만들기 +| {}
| 3개 연결 |
devkuma=#
kuma ロールが mykuma ロールに名前変更されていることを確認できる。ここで、ロールに設定されている属性はそのままである。
–
ここまで、ALTER ROLE コマンドを使用して作成済みロールの名前を変更する方法について説明した。