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