본문 바로가기
Database & Bigdata/Oracle

[Oracle] Mac에서 Docker로 Oracle 사용 시 Scott 계정 생성하기

by z.1nee 2021. 1. 26.
SMALL

저는 Mac Os에서 Oracle을 사용하기 위해 Docker를 사용하고 있습니다

 

* 도커 설치 및 오라클 설치 

jione-e.tistory.com/3?category=951692

 

[SQLD] Docker(도커)로 Mac OS에 Oracle 설치하고 Oracle SQL Developer 설치까지 !

이번에 SQLD 자격증을 준비하면서 기존에 사용하던 MySQL이 아닌 Oracle로 실습을 해보려합니다 그런데 Oracle을 설치하려니 윈도우와 리눅스 두가지 운영체제밖에 지원을 안하더라구요ㅜㅜ 그래서 D

jione-e.tistory.com

 

 

SQL Developer 를 실행시키고 접속하려면 먼저 터미널을 실행시키고 명령어를 입력합니다.

docker ps

 

현재 실행중인 docker 컨테이너 목록을 보여줍니다.

저는 oracle 컨테이너를 실행시켰기 때문에  실행 목록에 있지만 안보이신다면 다음 명령어를 입력하세요.

 

docker restart oracle11g

oracle11g 컨테이너를 재시작하는 명령어입니다.

 

 

 

system 계정 생성

접속을 완료했다면 system 계정을 생성해주세요.

 

 

 

 

이제 보통같으면 여기서 Scott 계정을 활성화하고 사용하면 되는데

저는 [ORA-01918: user 'SCOTT' does not exist] 라는 SCOTT 유저가 없다는 오류만 떠서 ㅜㅜ 

아예 계정을 새로 생성했습니다.

 

그런데 찾아봐도 윈도우에서 SCOTT 계정을 생성한 경우는 많은데 저는 맥에서 도커로 오라클을 사용하기 때문에 한참 헤맸네요 ㅜㅜ

 

 

 

sqlplus 접속하기

먼저 sqlplus에 관리자 권한으로 접속하기 위해 다음 명령어를 입력합니다.

docker exec -it oracle11g bin/bash

docker exec -it oracle11g bin/bash

 

root@6251d1456415:/# sqlplus /nolog

 

SQL> conn sys/oracle as sysdba
Connected.

 

 

 

 

 

SCOTT USER 생성


SQL> CREATE USER scott IDENTIFIED BY tiger

    2   DEFAULT TABLESPACE users

    3   TEMPORARY TABLESPACE temp;

 

 

 

SCOTT USER 권한부여

SQL> GRANT CONNECT, RESOURCE, DBA TO scott;

 

 

 

SCOTT 접속

SQL디벨로퍼에서 SCOTT 계정으로 접속

 

 

 

 

SCOTT 생성 스크립트

SCOTT의 워크시트에 아래 스크립트를 복사해 실행시키면 끝 !

--
-- Copyright (c) Oracle Corporation 1988, 1999.  All Rights Reserved.
--
--  NAME
--    demobld.sql
--
-- DESCRIPTION
--   This script creates the SQL*Plus demonstration tables in the
--   current schema.  It should be STARTed by each user wishing to
--   access the tables.  To remove the tables use the demodrop.sql
--   script.
--
--  USAGE
--       SQL> START demobld.sql
--
--

DROP TABLE EMP;
DROP TABLE DEPT;
DROP TABLE BONUS;
DROP TABLE SALGRADE;
DROP TABLE DUMMY;

SET TERMOUT ON
PROMPT Building demonstration tables.  Please wait.
SET TERMOUT OFF

CREATE TABLE BONUS
        (ENAME VARCHAR2(10),
         JOB   VARCHAR2(9),
         SAL   NUMBER,
         COMM  NUMBER);

CREATE TABLE EMP
       (EMPNO NUMBER(4) NOT NULL,
        ENAME VARCHAR2(10),
        JOB VARCHAR2(9),
        MGR NUMBER(4),
        HIREDATE DATE,
        SAL NUMBER(7, 2),
        COMM NUMBER(7, 2),
        DEPTNO NUMBER(2));

INSERT INTO EMP VALUES

        (7369, 'SMITH',  'CLERK',     7902,

        TO_DATE('17-12-1980', 'DD-MM-YYYY'),  800, NULL, 20);

INSERT INTO EMP VALUES

        (7499, 'ALLEN',  'SALESMAN',  7698,

        TO_DATE('20-02-1981', 'DD-MM-YYYY'), 1600,  300, 30);

INSERT INTO EMP VALUES

        (7521, 'WARD',   'SALESMAN',  7698,

        TO_DATE('22-02-1981', 'DD-MM-YYYY'), 1250,  500, 30);

INSERT INTO EMP VALUES

        (7566, 'JONES',  'MANAGER',   7839,

        TO_DATE('02-04-1981', 'DD-MM-YYYY'),  2975, NULL, 20);

INSERT INTO EMP VALUES

        (7654, 'MARTIN', 'SALESMAN',  7698,

        TO_DATE('28-09-1981', 'DD-MM-YYYY'), 1250, 1400, 30);

INSERT INTO EMP VALUES

        (7698, 'BLAKE',  'MANAGER',   7839,

        TO_DATE('01-05-1981', 'DD-MM-YYYY'),  2850, NULL, 30);

INSERT INTO EMP VALUES

        (7782, 'CLARK',  'MANAGER',   7839,

        TO_DATE('09-06-1981', 'DD-MM-YYYY'),  2450, NULL, 10);

INSERT INTO EMP VALUES

        (7788, 'SCOTT',  'ANALYST',   7566,

        TO_DATE('09-12-1982', 'DD-MM-YYYY'), 3000, NULL, 20);

INSERT INTO EMP VALUES

        (7839, 'KING',   'PRESIDENT', NULL,

        TO_DATE('17-11-1981', 'DD-MM-YYYY'), 5000, NULL, 10);

INSERT INTO EMP VALUES

        (7844, 'TURNER', 'SALESMAN',  7698,

        TO_DATE('08-09-1981', 'DD-MM-YYYY'),  1500, NULL, 30);

INSERT INTO EMP VALUES

        (7876, 'ADAMS',  'CLERK',     7788,

        TO_DATE('12-01-1983', 'DD-MM-YYYY'), 1100, NULL, 20);

INSERT INTO EMP VALUES

        (7900, 'JAMES',  'CLERK',     7698,

        TO_DATE('03-12-1981', 'DD-MM-YYYY'),   950, NULL, 30);

INSERT INTO EMP VALUES

        (7902, 'FORD',   'ANALYST',   7566,

        TO_DATE('03-12-1981', 'DD-MM-YYYY'),  3000, NULL, 20);

INSERT INTO EMP VALUES

        (7934, 'MILLER', 'CLERK',     7782,

        TO_DATE('23-01-1982', 'DD-MM-YYYY'), 1300, NULL, 10);

        
CREATE TABLE DEPT
       (DEPTNO NUMBER(2),
        DNAME VARCHAR2(14),
        LOC VARCHAR2(13) );

INSERT INTO DEPT VALUES (10, 'ACCOUNTING', 'NEW YORK');
INSERT INTO DEPT VALUES (20, 'RESEARCH',   'DALLAS');
INSERT INTO DEPT VALUES (30, 'SALES',      'CHICAGO');
INSERT INTO DEPT VALUES (40, 'OPERATIONS', 'BOSTON');

CREATE TABLE SALGRADE
        (GRADE NUMBER,
         LOSAL NUMBER,
         HISAL NUMBER);

INSERT INTO SALGRADE VALUES (1,  700, 1200);
INSERT INTO SALGRADE VALUES (2, 1201, 1400);
INSERT INTO SALGRADE VALUES (3, 1401, 2000);
INSERT INTO SALGRADE VALUES (4, 2001, 3000);
INSERT INTO SALGRADE VALUES (5, 3001, 9999);

COMMIT;

SET TERMOUT ON
PROMPT Demonstration table build is complete.

 

 

다음과 같이 테이블 4개가 생성된것을 볼 수 있습니다.

 

 

 

 

맥에서 오라클 사용하기 너무 힘드네요 ㅜㅜ

그래도 다행히 성공했습니다.

맥에서 오라클 사용하시는 분들에게 도움이 됐으면 좋겠습니당

댓글