Oracle

[ Oracle SQL Developer ] PDB 확인 및 사용자 계정 생성 절차

soyali 2025. 11. 12. 16:05

 

Oracle 12c 이후 버전부터는 멀티 테넌트(Multitenant) 구조가 도입되어,
데이터베이스가 다음과 같이 두 가지 계층으로 구성됩니다.

구분 설명
CDB (Container Database) 전체 시스템의 큰 틀로, Oracle 인스턴스의 루트 컨테이너 역할을 수행.
시스템 계정(SYS, SYSTEM)과 공통 메타데이터 관리.
PDB (Pluggable Database) 실제 사용자 데이터와 객체가 존재하는 독립적인 데이터베이스 단위.
일반 사용자 계정은 PDB 내부에 생성됨.

 

 

 

1. 현재 접속 컨테이너 확인

먼저, 현재 어떤 컨테이너(CDB 또는 PDB)에 접속 중인지 확인합니다.

SHOW CON_NAME;

출력

--------------------------------------------------------------------------------
CDB$ROOT

CDB$ROOT로 표시된다면 현재 CDB 루트 컨테이너에 접속 중이며, 이는 일반적으로 SYS 또는 SYSTEM 계정으로 접속한 상태입니다.

 

 

 

2. CDB 내 PDB 목록 확인

CDB에 등록된 PDB(플러그형 데이터베이스) 목록을 확인합니다.

SHOW PDBS;

출력

CON_ID CON_NAME OPEN_MODE RESTRICTED
----------   ---------            ----------            ----------
         2    PDB$SEED    READ ONLY     NO
         3    XEPDB1         READ WRITE   NO

※ 컬럼별 의미

컬럼명 설명
CON_ID 컨테이너 고유 ID. 각 CDB/PDB에 부여되는 내부 식별자.
CON_NAME 컨테이너 이름 (CDB$ROOT, PDB$SEED, XEPDB1 등).
OPEN_MODE 컨테이너 접근 모드.
- MOUNTED: 데이터파일만 연결, 접속 불가
- READ ONLY: 읽기 전용
- READ WRITE: 읽기·쓰기 가능(일반 운영 상태)
RESTRICTED 제한 모드 여부.
- YES: SYSDBA 등 특권 사용자만 접속 가능
- NO: 일반 사용자 접속 가능
참고: PDB$SEED는 새로운 PDB를 생성할 때 복제되는 템플릿 PDB로, 항상 READ ONLY 상태입니다.

 

 

 

 

3. PDB로 세션 전환

일반 사용자 계정은 CDB$ROOT가 아닌 PDB 내부에서 생성해야 합니다.

아래 명령으로 사용할 PDB로 세션을 전환합니다.

ALTER SESSION SET CONTAINER = <CON_NAME 입력>;

이제 <CON_NAME> 컨테이너에서 사용자 계정 및 객체를 생성할 수 있습니다. .

 

 

 

4. 사용자 계정 생성

CREATE USER test IDENTIFIED BY test;

test 계정을 생성하고 비밀번호를 test로 설정합니다.
이 상태에서는 아직 접속 및 객체 생성 권한이 없으므로 추가 권한을 부여해야 합니다.

 

 

 

5. 기본 권한 부여

GRANT CONNECT, RESOURCE TO <계정명>;
구분 권한 설명
로그인 CONNECT DB 접속 가능 (CREATE SESSION)
객체 생성 RESOURCE 일반 객체 생성 권한 (TABLE, INDEX, CLUSTER 등)

 

 

 

6. 추가 객체 생성 권한 (옵션)

GRANT 권한(옵션1), 권한(옵션2).......... TO <사용자명>;
권한(옵션) 설명
CREATE VIEW View 생성 가능 (SELECT 문을 기반으로 논리적 테이블 작성 가능)
CREATE SEQUENCE SEQUENCE 생성 가능 (자동 증가 번호용 객체 생성)
CREATE PROCEDURE PL/SQL 프로시저, 함수(Function), 패키지 생성 가능
CREATE TRIGGER 트리거(Trigger) 생성 가능 (데이터 변경 시 자동 동작 로직)
CREATE SYNONYM SYNONYM 생성 가능 (객체의 별칭을 부여 — 스키마 분리 시 유용)
CREATE TYPE 사용자 정의 데이터 타입 생성 가능 (OBJECT TYPE, VARRAY 등)
CREATE MATERIALIZED VIEW 물리적 뷰(Materialized View) 생성 가능 — 주로 성능 튜닝용
CREATE JOB DB 스케줄러(Job) 생성 가능 (자동 배치작업용)
CREATE TABLESPACE 별도 테이블스페이스 생성 가능 (일반 개발자보단 DBA 권한 수준)

 

 

 


※ 요약

단계 주요 명령 설명
1 SHOW CON_NAME; 현재 컨테이너 확인
2 SHOW PDBS; CDB 내 PDB 목록 확인
3 ALTER SESSION SET CONTAINER = CON_NAME; 세션을 PDB로 전환
4 CREATE USER test IDENTIFIED BY test; 사용자 계정 생성
5 GRANT CONNECT, RESOURCE TO test; 기본 권한 부여
6 GRANT CREATE VIEW, ... TO test; 필요 시 추가 권한 부여