Rancher Desktop에서 Oracle XE 설치 및 사용자 생성 방법

개요

Rancher Desktop에 Oracle XE를 설치한다.
Oracle XE에 사용자를 추가하고, 접속한다.

절차

docker 명령어로 Oracle XE를 추가한다.

Oracle DB 이미지는 Docker Hub에서 받을 수 없다. Docker Hub에서 오라클 약관에 동의하는 절차를 수행할 수 없기 때문이다. 아래 명령어를 이용하여 Oracle에서 직접 받는다.

docker pull container-registry.oracle.com/database/express:latest

docker run -d --name oracle-xe -p 1521:1521 -e ORACLE_PASSWORD=oracle container-registry.oracle.com/database/express:latest

Rancher Desktop에서 Oracle XE Container를 시작한다.

Oracle XE에 접속하여 사용자를 생성한다.

그냥 실행하면 에러가 아래처럼 ORA-65096 에러가 발생한다.

C:\Users\USER>docker exec -it oracle-xe bash
bash-4.2$
bash-4.2$ sqlplus / as sysdba

SQL*Plus: Release 21.0.0.0.0 - Production on Sun Sep 7 03:30:13 2025
Version 21.3.0.0.0

Copyright (c) 1982, 2021, Oracle.  All rights reserved.


Connected to:
Oracle Database 21c Express Edition Release 21.0.0.0.0 - Production
Version 21.3.0.0.0

SQL>
SQL> CREATE USER igate IDENTIFIED BY "igate" DEFAULT TABLESPACE users TEMPORARY TABLESPACE temp;
CREATE USER igate IDENTIFIED BY "igate" DEFAULT TABLESPACE users TEMPORARY TABLESPACE temp
            *
ERROR at line 1:
ORA-65096: invalid common user or role name


SQL>

이 에러는 CDB$ROOT에서 로컬 사용자를 만들려고 해서 생긴 것이다. Oracle 12c+ (XE 21c 포함)는 멀티테넌트 구조라서 아래 내용을 참고해야 한다.

  • ROOT(CDB$ROOT) 에서는 C## 접두어가 붙은 공통 사용자만 생성 가능
  • PDB(XEPDB1) 에서는 일반 이름의 로컬 사용자 생성 가능 ← 실사용 권장

즉, Oracle XE는 기본적으로 XEPDB1 PDB를 써야 일반 사용자 계정을 만들 수 있다. 아래와 같이 조치한다.

SQL> show CON_NAME

CON_NAME
------------------------------
CDB$ROOT
SQL> show PDBS;

    CON_ID CON_NAME                       OPEN MODE  RESTRICTED
---------- ------------------------------ ---------- ----------
         2 PDB$SEED                       READ ONLY  NO
         3 XEPDB1                         READ WRITE NO
SQL> alter session set CONTAINER = XEPDB1;

Session altered.

SQL> CREATE USER igate IDENTIFIED BY "igate" DEFAULT TABLESPACE users TEMPORARY TABLESPACE temp;

User created.

SQL> GRANT CREATE SESSION TO igate;

Grant succeeded.

SQL> GRANT CREATE TABLE, CREATE SEQUENCE, CREATE VIEW, CREATE PROCEDURE TO igate;

Grant succeeded.

SQL> GRANT UNLIMITED TABLESPACE TO igate;

Grant succeeded.

SQL>

Oracle XE 접속 방법

이제 오라클에 접속하여 작업을 수행할 수 있다.

jdbc:oracle:thin:@//localhost:1521/XEPDB1

댓글 달기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다

위로 스크롤