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 명령을 사용하여 생성된 역할의 이름을 변경하는 방법에 대해 알아보았다.