DBeaver로 Oracle XE 21c 접속/계정 생성/테이블 생성하기

Oracle DB와 연동할 일이 생겼다.
XE를 연동 테스트 대상 제품으로 정하고 설치했는데
MariaDB와는 다른 구조라서 조금 헤맸던 경험을 기록한다.

XE는 Oracle Database Express Edition을 지칭한다.
무료고, 경량이고 같은 기업용 제품과 같은 엔진을 쓰지만
하드웨어 자원을 사용하는데 제한이 있다고 한다.






1. 설치 후 최고 사용자 설정


우선 설치가 끝나면
Database Configuration Assistant를 실행하여 
기존 최초로 생성된 데이터베이스를 설정한다.
데이터베이스 선택에서 계정 설정을 마친 뒤 
모두 다음(N) > 을 눌러주면 된다.

*
TDE 전자지갑 비밀번호는
DB 레벨에서 데이터 암호화 서비스를 위한 비밀번호다.


- ...
- 접속 모드 > 전용 서버 모드





설정 완료후, Dbeaver로 Oracle 접속을 시도하면
우선 Oracle JDBC Driver를 설치하라는 창이 뜨고 설치해준다.




2. 최초 Connection

Database configuration manager에서
데이터베이스 이름을 'XE'로 잡았으므로
최초 접속 시, 아래와 같이 구성한다.



- 데이터베이스는 'XE'
- Username은 'system'
- Role은 Normal
- Password는 패스워드




3. PDB 전용 사용자 생성


이렇게 master 또는 system 유저로 구성된 세션에서는

SELECT * FROM ALL_USERS;
를 통해 오라클 DB에서 생성된 기본 계정들을 열람할 수 있는데

우리는 애플리케이션 서버와 통신하기 위한 전용 사용자를 생성해야한다.


오라클 12c의 멀티테넌트 아키텍처 구조상
컨테이너 데이터베이스(CDB)와
플러그인 데이터베이스(PDB)가 있는데

CDB는 물리적으로 하나의 Oracle 인스턴스를 의미하고
PDB는 논리적으로 독립된 DB로 작동한다.

CDB는 여러 개의 PDB를 가지고 공통 사용자 계정이 존재한다.
때문에 CDB에 생성되는 사용자는 'C##'로 시작하는 이름이어야하고
일반적인 서비스와 연결될 PDB의 새로운 사용자는 PDB에 생성한다. 

-> 요약하자면 서비스용 DB의 계정은 PDB에 만들라는 뜻이다.
-> 이제 XE DB가 아닌 PDB로 접속해보자.

PDB의 이름을 모르므로 
SELECT NAME, OPEN_MODE FROM V$PDBS;
로 OPEN_MODE 컬럼에서 READ WRITE이 허용되어있는 행을 찾는다.

필자의 읽고 쓸 수 있는 PDB 이름은 XEPDB1이다.
PDB를 찾았으니 다음과 같이 새 세션으로 접속한다.




접속 성공하면 계정을 만들고
CREATE USER {사용자명} IDENTIFIED BY {비밀번호};


SELECT * FROM ALL_USERS;
로 생성된 것 확인한 뒤에

만든 계정에 권한을 부여하자.
GRANT CONNECT, RESOURCE TO {사용자 명};


만든 계정으로 새 세션 만들어 성공적으로 접속한 화면



댓글

이 블로그의 인기 게시물

Blogger 커스터마이징 : CSS 수정 (sticky-header)

Vue 첫 걸음

Python의 빌트인 class들의 관계