오라클DB - 1. 기본 설정

CodeModel·2023년 6월 14일
0

오라클 DB

목록 보기
1/4

용어정리

사용자 - 오라클 DB에 접속하여 데이터를 관리하는 계정

스키마 - 데이터베이스에서 사용되는 논리적인 컨테이너. 이 컨테이너 안에는 데이터베이스에서 사용되는 테이블, 뷰, 인덱스, 시퀀드, 프로시저등이 들어간다.
각각의 스키마는 각각의 이름을 가진다.

세션권한 - 특정 사용자가 데이터베이스에 접속하여 세션을 시작할 때 가지는 권한
세션이 있는 동안에 작업을 할 수 있는 권한이 주어지고, 세션이 종료되면 해당 권한은 사라진다.

시작

오라클 DB는 사용자별로 테이블, 인덱스, 뷰등이 따로 생성된다. 하지만 이것을 자세히 보면 사용자별로 만들어지는게 아니라 사용자가 만드는 스키마별로 구분되는 것 이다. 그래서 오라클DB에서는 사용자와 스키마를 구별하지 않고 사용하기도 한다.

유저(스키마1(테이블1,테이블2)), 유저2(스키마2(테이블1,테이블2)) 이런 느낌인듯하다

나는 기존에 있던 오라클 DB 에서 RUDQQ라는 admin 스키마로부터 STUDY 스키마를 만들었다. 이후 STUDY 스키마에 권한을 부여하는 것 부터 시작하겠다.

사용자를 생성 후 세션 권한이 부여되어야 데이터베이스 접속이 가능해서 권한을 주었다.

GRANT CREATE SESSION TO STUDY;

STUDY 스키마에 테이블을 생성을 할 수 있는 권한을 주었다.

GRANT CREATE TABLE TO STUDY;

STUDY 스키마에 테이블을 수정을 할 수 있는 권한을 주었다.

GRANT ALTER ANY TABLE TO STUDY;

STUDY 스키마에 테이블을 삭제 할 수 있는 권한을 주었다.

GRANT DROP ANY TABLE TO STUDY;

DDL 권한을 전부 주었다. 이젠 DML 권한을 주겠다.

GRANT SELECT ANY TABLE TO STUDY;
GRANT INSERT ANY TABLE TO STUDY;
GRANT UPDATE  ANY TABLE TO STUDY;
GRANT DELETE  ANY TABLE TO STUDY;

DCL은 생략하도록 하겠다.

이렇게 했더니 테이블 스페이스가 없다는 오류가 나왔다.

오라클은 테이블 스페이스를 만든 후 테이블을 만들 수 있다. 테이블 스페이스란 테이블이 저장될 공간을 먼저 만들고 나서 테이블을 생성한다. 각각의 테이블을 테이블 스페이스별로 나누어서 관리함으로써 성능을 향상시키는 것 이다.

STUDY 스키마에 사용할 STUDY_TABLESPACE 라는 테이블 스키마를 생성했다.

CREATE TABLESPACE STUDY_TABLESPACE DATAFILE 'study_tablespace.dbf' SIZE 100M AUTOEXTEND ON;

이후 테이블스페이스에 무제한 용량을 주었다.

GRANT UNLIMITED TABLESPACE TO STUDY;

이제 Create문을 쓸 수 있다.

이제 STUDY 스키마에서 테이블을 만들어야겠다.

CREATE TABLE std 
(
	num 	NUMBER(10)	 NOT NULL
);

그런데 생각해 보니 이름 컬럼을 추가하고 싶다. ALTER 문을 이용해서 추가하겠다.

ALTER TABLE std ADD (name VARCHAR2(10) NOT NULL);

성공적으로 추가되었다.

profile
개발자가 되기 위한 일기

0개의 댓글