RDS for Oracle에서 언어를 변경하는 여러 패턴들을 시도해 봤습니다.
안녕하세요 클래스메소드 김재욱(Kim Jaewook) 입니다. 이번에는 RDS for Oracle에서 언어를 변경하는 여러 패턴들을 시도해 봤습니다.
RDS for Oracle에 접속하는 방법은 아래 블로그를 참고해 주세요.
하고 싶은 것
RDS for Oracle에 접속하면, 기본적으로 영어가 표시됩니다.
- select value$ from sys.props$ where name='NLS_LANGUAGE';
상기 명령어를 입력해 보면, 기본 언어가 AMERICAN으로 되어있는 것을 확인할 수 있습니다. 이번 블로그에서는 이러한 언어 설정을 변경하는 방법에 대해서 다루어 보도록 하겠습니다.
파라미터 그룹으로 언어 변경
데이터베이스에서 관리되는 파라미터들은 기본적으로 파라미터 그룹을 통해 관리되며, 파라미터 그룹을 통해 파라미터를 수정할 수 있습니다.
여기서 NLS(National Language Support)를 이용해서 언어를 설정할 수 있는데, 파라미터 그룹에서도 설정을 변경할 수 있지만, 가장 중요한 NLS_LANGUAGE를 변경할 수 없습니다.
실제로 파라미터 그룹에서 NLS_LANGUAGE를 검색해 보면, 출력되지 않고, 상기 NLS(National Language Support)만 출력되는 것을 확인할 수 있습니다.
즉, 파라미터 그룹으로는 RDS for Oracle의 언어를 변경할 수 없습니다.
명령어로 언어 변경
그렇다면 명령어로 언어 변경이 가능한지 확인해 보겠습니다.
update sys.props$ set value$='JAPANESE' where name='NLS_LANGUAGE';
상기 명령어를 통해 언어를 일본어로 변경합니다.
명령어를 실행해 보면, 상기와 같이 권한 문제가 발생합니다.
RDS는 관리형 서비스로 AWS에서 관리되고 있기 때문에 SYS 혹은 SYSTEM 사용자를 사용할 권한이 없습니다.
admin도 시스템을 변경할 권한을 가지고 있지 않습니다.
- 데이터베이스 변경
- 시스템 변경
- 모든 디렉토리 만들기
- 모든 디렉터리 삭제
- 임의의 특권 부여
- 임의의 역할 부여
상기와 같은 권한은 없기 때문에 시스템 변경이 불가능합니다.
export를 이용하여 언어 변경
이번에는 export를 이용해서 언어를 변경해 보도록 하겠습니다.
vi /etc/profile
상기 명령어를 통해 /etc/profile로 들어갑니다.
언어 설정을 위해「export NLS_LANG=JAPANESE_JAPAN.AL32UTF8」를 입력합니다.
source /etc/profile
이어서 source 명령어를 이용해 /etc/profile에 설정한 export를 실행합니다.
이후 RDS에 접속해 보면 일본어로 변경된 것을 확인할 수 있습니다.
하지만 터미널을 종료하고 다시 접속해 보면, 다시 영어로 돌아온 것을 확인할 수 있으며, 언어를 변경 하기 위해서는 조금 전 설정한 /etc/profile를 source /etc/profile 명령어로 다시 실행할 필요가 있습니다.
AWS 공식 문서에서도 영구적인 언어 설정을 안내하고 있다기 보다는 ALTER SESSION 명령어를 이용해, 접속한 세션에 임시로 언어를 변경하는 방법을 제공하고 있습니다. RDS for Oracle에서는 영구적으로 언어를 변경하는 방법에 대해서는 지원하지 않는걸까요?
본 블로그 게시글을 읽고 궁금한 사항이 있으신 분들은 jaewookkim533@yahoo.com로 보내주시면 감사하겠습니다.