Oracle에서 개발 및 테스트를 위해 Oracle XE를 무료로 사용할 수 있도록 배포하고 있습니다. 그러나 몇 가지 제약사항들이 있는 데 그중에 하나가 사용자 생성 시 사용자 이름에 대한 제약이 있습니다.
1. ORA-65096 : 공통 사용자 또는 롤 이름이 부적합합니다.
CREATE USER C##myuser IDENTIFIED BY pwd123;
Oracle XE에서는 system 계정으로 로그인해서 사용자를 만들 때, C##을 붙인 사용자는 만들 수 있지만 일반 이름은 사용할 수 없는 제약이 있습니다. 그래서 위의 SQL은 문제가 없지만 아래와 같은 일반적인 SQL문은 오류가 발생합니다.
CREATE USER my_user IDENTIFIED BY pwd123
DEFAULT TABLESPACE myts
위의 SQL을 실행하면 오류가 발생하고, 오류 메시지는 아래와 같습니다.
명령의 28 행에서 시작하는 중 오류 발생 -
CREATE USER my_user IDENTIFIED BY pwd123
DEFAULT TABLESPACE myts
오류 보고 -
ORA-65096: 공통 사용자 또는 롤 이름이 부적합합니다.
65096. 00000 - "invalid common user or role name"
*Cause: An attempt was made to create a common user or role with a name
that was not valid for common users or roles. In addition to the
usual rules for user and role names, common user and role names
must consist only of ASCII characters, and must contain the prefix
specified in common_user_prefix parameter.
*Action: Specify a valid common user or role name.
2. 해결 방법
Oracle XE에서 제약을 걸어두기 위해 system 계정으로 로그인할 경우 SESSION이 잠겨진 SESSION으로 접속하게 됩니다. 그래서 아래 명령을 사용하여 SESSION 설정을 변경하면 기존의 SQL 구문들을 제약 없이 사용할 수 있습니다.
ALTER SESSION SET "_ORACLE_SCRIPT"=true;
Oracle XE에서 개발 및 테스트를 하고 있는 개발자라면 system으로 로그인해서 DDL을 다룰 경우 위 명령을 먼저 실행해주면 다른 SQL문 작업 중에도 혼돈 없이 작업을 진행할 수 있겠습니다.
'DevOps > DB, Oracle, MariaDB' 카테고리의 다른 글
[MariaDB] Windows 서비스 등록 및 삭제 (0) | 2022.09.14 |
---|---|
[MariaDB] MariaDB 알아보기, 다운로드 및 설치하기, 제거하기 (0) | 2022.09.13 |
[H2] org.h2.Driver : java.lang.ClassNotFoundException (0) | 2022.07.08 |
[SQL Developer] SQL Developer에서 DBMS_OUTPUT, DBMS 출력 확인 하는 방법 (0) | 2022.05.04 |
[SQL Developer] Oracle SQL Developer 다운로드 및 설치 (0) | 2022.05.03 |
댓글