Oracle 12c 새 사용자 생성
Oracle12c에는 CDB/PDB 멀티테넌트 아키텍처가 도입되었습니다. 컨테이너 데이터베이스(CDB)에서 일반 사용자를 직접 생성하면 오류가 발생합니다. CDB 내부에서 만드는 공통 사용자 이름은 반드시 c## / C## 접두사를 붙여야 합니다.
로그인
- Windows cmd를 열고 sqlplus 실행
sqlplus
- 슈퍼 관리자 계정으로 데이터베이스 접속
사용자 이름 입력: sys as sysdba
비밀번호 입력: 【설치 당시 설정한 sys 비밀번호 입력】Code language: JavaScript (javascript)
로그인 성공 메시지:접속됨: Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production
사용자 생성
잘못된 작성 예시
목표:사용자 cat, 비밀번호 123456 생성
실행 SQL:
CREATE USER cat IDENTIFIED BY 123456;
ORA-65096: 공통 사용자 또는 역할 이름이 올바르지 않습니다Code language: HTTP (http)
오류 원인:현재 CDB 루트 컨테이너에 접속 중입니다. 공통 사용자(Common User)는 c## 접두사가 강제되며 cat은 명명 규칙에 맞지 않습니다.
공통 사용자 올바른 생성 방법
실행 SQL:
CREATE USER c##cat IDENTIFIED BY Bm123321;Code language: CSS (css)
실행 결과:사용자가 생성되었습니다.
사용자 권한 부여
잘못된 권한 부여 구문
GRANT CONNECT, RESOURCE, DBA TO cat;
ORA-01917: 사용자 또는 역할 'CAT'이(가) 존재하지 않습니다Code language: JavaScript (javascript)
사용자 이름은 c##cat입니다. 권한 부여 시 생성할 때와 완전히 동일한 이름을 사용해야 하며 cat으로 줄여 쓸 수 없습니다.
올바른 권한 부여 구문
GRANT CONNECT, RESOURCE, DBA TO c##cat;Code language: CSS (css)
권한 설명:
CONNECT:기본 로그인 및 접속 권한RESOURCE:개발에서 자주 쓰이는 자원 역할, 테이블·인덱스 등 객체 생성 허용DBA:전체 데이터베이스 관리자 권한(테스트 환경에서만 사용, 운영 환경에서 함부로 부여하지 마세요)
새 사용자 로그인 검증
exit실행하여 sys 관리자 세션 종료 후 sqlplus 재실행
SQL> exitCode language: PHP (php)
- 잘못된 정보로 로그인 시도
사용자 이름 입력: cat
비밀번호 입력: 123456
오류:ORA-01017: 사용자 이름/비밀번호가 유효하지 않습니다; 로그온이 거부되었습니다
- 올바른 로그인 방식
사용자 이름 입력: c##cat
비밀번호 입력: 123456Code language: CSS (css)
데이터베이스 접속 성공.
사용자 생성
Previous: SQL Plus 와 SQL Developer
Next: 테이블 생성