티스토리 뷰

개발/Cloud (AWS)

Redshift 슈퍼계정 이름 변경

Jaeyeon Baek 2021. 11. 10. 15:13

클러스터를 생성할 때 함께 만든 슈퍼계정 이름을 변경하는 방법을 기술합니다. 우선, 계정 이름을 변경하는 쿼리는 다음과 같고 슈퍼계정 권한이 있어야만 실행할 수 있습니다. ( 기존 계정 이름이 admin이고 이를 sysadmin으로 변경하겠다는 예제입니다 )

alter user admin rename to sysadmin;

 

하지만 위에 쿼리를 실행하면 아래와 같은 에러를 만나게 됩니다.

ERROR: session user may not be renamed

 

현재 접속한 계정의 이름을 변경할 수 없다는 내용입니다. 이 상태에서 우리가 선택할 수 있는 방법은 1) 임시 계정(tempadmin)을 추가로 2) 임시 계정에 슈퍼계정 권한을 줍니다 3) 임시 계정으로 접속해서 기존 계정(admin)의 이름을 변경해줍니다 4) 그리고 다시 변경된 이름(sysadmin)으로 접속해서 임시 계정(tempadmin)을 삭제해주는 방식입니다. 말은 복잡해 보이지만 쿼리는 간단합니다.

-- 0) 현재는 admin 계정으로 로그인되어 있는 상태이다 
-- 1) tempadmin을 생성한다
CREATE USER tempadmin CREATEUSER PASSWORD '1234Admin';

-- 2) tempadmin을 계정을 슈퍼계정으로 변경한다
ALTER USER tempadmin CREATEUSER;

-- 3) tempadmin으로 로그인하고 아래 쿼리를 실행한다 ( admin을 sysadmin으로 변경하는 쿼리다 )
alter user admin rename to sysadmin;

-- 4) sysadmin으로 로그인하고 임시 계정(tempadmin)을 삭제한다
drop user tempadmin;

 

우회적인 방법 같아 보이지만 유일한 방법이기도 합니다. 누군가에게는 도움이 되겠죠? 그리고 계정 이름을 변경할 때 놓쳐서는 안되는 매우 중요한 사실이 하나 있습니다. 바로 패스워드 재설정이 필요하다는 사실이죠. 공식 홈페이지에는 아래와 같이 안내되어 있습니다. :) 

"사용자의 이름을 바꿀 때는 사용자의 암호도 변경해야 합니다. 사용자 이름은 암호를 암호화하는 과정의 일부로 사용되므로, 사용자 이름을 바꾸면 해당 암호가 삭제됩니다. 사용자가 암호를 재설정해야 로그인할 수 있습니다."

alter user newuser password 'EXAMPLENewPassword11';

 

자, 그럼 패스워드 변경까지 마무리 잘 하셨기를 바랍니다!

댓글
최근에 올라온 글
최근에 달린 댓글
글 보관함
Total
Today
Yesterday