기존에 오라클 11g 를 이용하다 19c로 바꾸고 user를 만드는 작업을 했다

 

이때 ORA-65096: 공통 사용자 또는 롤 이름이 부적합합니다. 라는 에러를 만났다

 

이는 오라클 12c 부터 공통계정앞에 c##을 붙이도록 네이밍 규칙이 변경되어 생긴 오류다

 

12c 버전부터 등장한 CDB, PDB 개념 때문이다

 

1) CDB : 여러개의 DB를 담을 수 있는 컨테이너

- PDB와 동일한 인스턴스 공유한다

 

2) PDB : local user 입장에서 독립적인 DB로 보이는 CDB에서 자유롭게

땟다 붙혔다 가능한 DB이다

- PDB 끼리는 서로 독립적이다, 서로 데이터 공유를 하지 않는다

- 쉽게 복사가 가능하다

- CDB 내에서 동일한 local 유저, 스키마명, 오브젝트명을 PDB마다 만들 수 있다

 

 

문제를 해결하기 위해서는 user 이름 앞에 c##을 붙여주면 된다

 

권한을 줄때나 sql 개발툴로 접속할때 코드에 유저네임을 적을때도

 

c##을 붙여줘야 한다

 

생성

 

권한부여

 

코드