DATABASE

Oracle / 테이블 스페이스 생성, 계정 생성, 권한 부여하기

DevS1K 2025. 1. 9. 07:05

전 포스트에서 Mac OS M칩에 Oracle DB 설치하는 글을 올렸다.

오늘은 그 이후에 테이블 스페이스 생성부터 계정 생성, 권한 부여까지 할 것이다.

 

1. 테이블 스페이스 생성

테이블 스페이스는 데이터를 저장하는 저장소이다. 기본 테이블 스페이스를 사용해도 되지만 용도, 복구 및 백업, 보안, 데이터의 용량 증가 등 각 요구에 맞게 생성하고 관리하는 게 맞다.

 

- 테이블 스페이스 종류

PERMANENT 일반적인 데이터 저장 (테이블, 뷰, 인덱스 등)
UNDO 트랜잭션 롤백을 위한 데이터 정보 저장 (변경 내역, 이전 값)
TEMPORARY 임시 데이터 저장 (연산, 정렬 등)

 

 

1-1. PERMANENT 테이블 스페이스 생성

CREATE TABLESPACE shared_data 
DATAFILE '/u01/app/oracle/oradata/shared_data.dbf' 
SIZE 100M 
AUTOEXTEND ON NEXT 10M 
MAXSIZE UNLIMITED;

 

 

1-2. TEMPORARY 테이블 스페이스 생성

CREATE TEMPORARY TABLESPACE temp_data 
TEMPFILE '/u01/app/oracle/oradata/temp_data.dbf' 
SIZE 50M 
AUTOEXTEND ON NEXT 10M 
MAXSIZE UNLIMITED;

DATEFILE ,TEMPFILE [경로] 저장되는 파일의 경로와 이름 설정 
Docker 컨테이너 내 DB 데이터 저장 위치 경로는 '/u01/app/oracle/oradata/' 이다.
SIZE [크기] 초기 생성 크기 설정
기본값 : 20MB
AUTOEXTEND ON NEXT [크기] 공간이 부족할 경우 자동으로 늘어나는 크기 설정
기본값 : OFF
MAXSIZE [크기] 크기 제한 설정
기본값 : UNLIMITED

 

 

- 테이블스페이스 목록 보기

SELECT TABLESPACE_NAME 
FROM DBA_TABLESPACES;

위 사진과 같이 테이블 스페이스가 생성된 게 보인다.


 

2. 계정 생성 및 권한 부여

 

2-1. 계정 생성

CREATE USER [USERNAME]
IDENTIFIED BY [PASSWORD] 
DEFAULT TABLESPACE shared_data 
TEMPORARY TABLESPACE temp_data;

위와 같이 본인이 사용할 USERNAME과 PASSWORD를 넣고 SQL문을 작성해 준다. 테이블 스페이스는 위에서 생성한 테이블 스페이스를 기본값으로 설정해 줬다.

 

 

2-2. 계정 데이터베이스 권한 부여

GRANT RESOURCE, CONNECT TO [USERNAME]

CONNECT : 데이터베이스 접속 권한 부여

RESOURCE : 테이블, 프로시저, 타입 등 권한 부여

 

여기까지 진행했으면 Oracle DB 기본 계정 생성과 권한 부여가 완료되었다.

 


왜? MySQL과 다르게 Oracle은 계정 생성이 필수인가?

더보기

항상 팀 프로젝트 할 때 MySQL을 사용할 때 root 계정으로 모든 작업을 다했다. 하지만 Oracle은 다르다.

MySQL root 계정과 Oracle의 sys 계정은 같은 데이터베이스 관리자 계정이지만, sys은 root와 다르게 엄격하다.

MySQL은 독립적인 스키마로 동작하여 테이블 CRUD 작업해도 큰 문제없지만, Oracle은 단일 데이터베이스 내에 모든 스키마(시스템 포함)가 존재하여 sys계정에서의 실수는 치명적이다. 그래서 Oracle은 스키마=사용자 개념이 강하게 연결되어 있어서 계정 생성은 필수다.

물론 MySQL도 계정을 생성해야하지만 Oracle처럼 엄격하지 않다.