오라클(Oracle)은 MySQL, MSSQL, PostgreSQL 등과 사용자, 스키마, DB명의 개념이 다르다.
DB_NAME, SID, SERVICE_NAME 차이
항목 | 설명 | 용도 |
DB_NAME | 데이터베이스의 이름 | init.ora 등에서 정의 |
ORACLE_SID | 오라클 인스턴스의 OS 상 이름 | 서버 내 인스턴스 구분 |
SERVICE_NAME | 클라이언트가 접속할 때 사용하는 이름 | JDBC 등 외부 접속에 사용 |
오라클을 설치하고 별도의 설정을 하지 않으면 DB_NAME과 SID의 기본 값은 ORCL 이다. 그래서 오라클을 다룰 땐 ORCL을 많이 본다. 하지만 DB명과 SID는 다르다.
// DB_NAME 확인 방법
SELECT name FROM v$database;
// SID 확인 방법
SELECT instance_name FROM v$instance;
사용자와 스키마
오라클에서는 사용자를 생성하면 자동으로 동일한 이름의 스키마가 생성된다. 그래서 오라클에서는 create user~는 있어도 create database~가 없다.
사용자를 생성하면 자동으로 그 사용자 이름과 같은 이름의 스키마가 생성된다. 여기서 스키마란 테이블, 뷰, 인덱스 등의 객체를 포함하는 논리적 공간을 의미한다.
CREATE USER testuser IDENTIFIED BY password;
이렇게 유저를 생성하면 testuser라는 이름의 스키마가 자동으로 생성되는 것이다. 때문에 오라클에서는 사용자 단위로 관리가 이루어진다. 오라클은 스키마(사용자) 중심으로 데이터베이스를 관리한다.