본문 바로가기

IT관련

오라클 에러 정보 (ORA-65096) - 공통 사용자 또는 롤 이름이 부적합합니다.

Oracle 멀티테넌트DB (Multi-Tenant DB) 에서 DB 유저를 만들려고 하면 아래와 같이 ORA-65096 에러를 만나는 경우가 있습니다. 영어로는 아래와 같이 "Invalid common user or role name" 이라고 나오고, 한글로는 "공통 사용자 또는 롤 이름이 부적합합니다." 라고 나옵니다.

 

 

멀티테넌트 DB 에서 그냥 "sqlplus / as sysdba" 와 같이 기존처럼 접속하면 CDB(Container DB)로 접속하게 됩니다.

이 CDB는 여러개의 PDB(Pluggable DB)들을 담고 있는 그릇(Container)입니다. 따라서 사용자 계정은 PDB 안에서 만들어야 합니다.

 

PDB로 접속할때는 tnsname 을 미리 만들고 그것을 사용해서 접속하는 방법이 있고, 아래처럼 Easy Connect 방식으로 접속하면 됩니다.

 

 

하지만, CDB 내에서도 유저 생성은 가능합니다. CDB 내에 DB 유저를 만드는 경우에는 Naming 규칙이 있습니다.

만들려는 DB유저명 앞에 "C##_" 라는 prefix(접두어)를 붙여줘야 합니다.

 

 

에러없이 잘 만들어지는 것을 확인할 수 있습니다. ^^

 

이런식으로 "c##_" 접두어가 붙은 유저를 Common User 라고 하고, PDB 안에 만들어지는 DB 계정들은 그냥 Local User 라고 합니다. 물론 Local User 만들때는 "c##_" 접두어 없이 그냥 예전처럼 만들면 되겄심다.

 

이 "c##" 접두어는 오라클 DB 파라메타 "common_user_prefix" 에 정의되어 있습니다.