본문 바로가기
LEARN/SQL

[ORACLE] 설치 및 사용자 생성 및 권한 추가 그리고 DBeaver 등록

by 아이엠제니 2024. 5. 5.

 


 

 

 

SQLD 공부하는 것 때문에 오라클을 설치했다.

대부분 MySQL만 사용했었고, 오라클 사용은 이전에 이미 세팅되어 있는 것 위주로만 사용을 했었다.

그래서 오라클 자체를 설치해서, 사용해보는 건 처음인데!

설치가 꽤나 까다로웠다.

접속이 되질 않아, 정말 몇 시간 동안 오라클만 붙잡고 있었다.

 

 

 

1. 오라클 설치


https://www.oracle.com/kr/database/technologies/xe-downloads.html

오라클 설치는 위 사이트에서 할 수 있었다.

나는 Windows를 사용하고 있기 때문에, 윈도우 버전으로 설치를 했다.

집 파일로 다운로드가 되는데, 압축을 푼 후에!

[setup.exe] 을 클릭하여 설치하면 된다.

특별하게 설정해야하는 것은 따로 없었다.

다만 중간에 비밀번호 설정을 하는 부분이 있는데, 그 부분만 잘 입력한 후에!

기억하고 있으면 될 것 같다.

 

 

오라클 접속 에러

그리고 cmd 창을 열어 Oracle이 잘 설치되었는지 확인을 해봤다.

ORA-12154: TNS: 지정된 접속 식별자를 분석할 수 없음

이런 안내가 뜨면서, 접속이 안 되는 것이었다.

검색을 해보니, JDK 설치 후 환경 변수 설정을 해주는 것처럼 오라클도 환경 설정이 필요해 보였다.

 

 

 

2. 시스템 변수 편집


시스템 환경 변수 편집 > 시스템 속성 > 고급 > 환경 변수 > 시스템 변수

 

ORACLE_HOME

'환경 변수 > 시스템 변수'에서 [새로 만들기] 버튼을 클릭한 후, 내용을 추가한다.

ORACLE_HOME
C:\app\사용자명\product\21c\dbhomeXE

변수 값은 오라클이 설치되어 있는 위치다.

 

그리고 '시스템 변수'에서 'Path'를 클릭한 후, [편집] 버튼을 클릭한다.

bin 위치를 설정해줘야 한다고 나와있는데!

들어가 보면 위처럼 이미 설정되어 있을 수도 있다.

그렇다면 굳이 추가하지 않아도 된다.

만약 없다면!

%ORACLE_HOME%\bin

이렇게 추가해 주면 될 것 같다.

 

 

그리고 원래는 시스템 변수에 추가로 'TNS_ADMIN'을 등록하고!

C:\app\사용자명\product\21c\dbhomeXE\network\admin

위 경로에서 'tnsnames.ora' 파일도 추가했었다.

참고로 TNS_ADMIN은 Oracle 클라이언트나 서버에서 사용하는 환경 변수 중 하나라고 한다.

이렇게까지 다 등록하고 시도해 봤으나?

여전히 접속이 되질 않았다.

 

 

 

3. 또 다른 방법


https://devlimk1.tistory.com/6

 

여전히 접속되지 않는 문제가 있어서, 구글링을 하다가 위 글을 보게 된다.

 

일단 ctrl + r > cmd 를 입력해서, cmd 창에 접속을 한다.

1) sqlplus

sqlplus

cmd 창에서 oracle db 접속을 위해 'sqlplus'를 입력한다.

 

2) 사용자명 입력

sys as sysdba

사용자명만 입력 후 엔터를 친다.

 

 

3) 접속 계정 확인

show user;

여기서 위 명령어를 입력하면 접속 계정도 확인할 수 있다.

 

 

4) 비밀번호 변경

alter user sys identified by 0000;

그리고 위 명령어를 입력하면!

사용자가 변경되었다고 뜬다.

 

 

5) 접속

conn sys/0000 as sysdba;

위 명령어로 접속을 해보면?

잘 된다.

 

 

 

4. 또 다른 문제


근데 이 경우에 또 다른 문제가 있었다.

DBeaver를 이용해서 테이블을 생성 후 실습을 하는데?

컬럼 삭제가 안 되는 것이었다.

ORA-12988: SYS에 의해 소유된 테이블에서 열을 삭제할 수 없습니다

컬럼 추가나 수정은 되고 있었는데, 컬럼 삭제만 되질 않았다.

 

https://oooooohi.tistory.com/entry/ORA12988-cannot-drop-column-owned-by-sys-%EC%97%90%EB%9F%AC

 

그 원인은 위 블로그에서 발견할 수 있었다.

`SYS` 계정으로 만든 테이블은 컬럼 추가랑 변경은 되지만, 컬럼 삭제는 불가능하다는 것이었다.

그러니 실습을 할 때는 SYS 계정으로 하면 안 되는 것이었다.

 

그래서 그냥 사용자 계정을 생성하기로 한다.

 

 

 

5. 계정 생성 및 권한 부여


다시 cmd 창에서 원점으로 돌아간다.

 

이렇게 접속을 하고, 계정을 생성해 본다.

 

 

ORA-65096: 공통 사용자 또는 롤 이름이 부적합합니다.

쉽지 않은 오라클...

사용자 생성이 안 되는 것이었다. (...)

 

위 에러는 https://crome.tistory.com/27 이 블로그를 보고 해결했다.

12C 버전에서는 사용자 계정 앞에 c##을 붙여줘야 한다고 한다.

 

CREATE USER c##guest IDENTIFIED BY 1234;

위처럼  guest라는 사용자명 앞에 c##을 넣은 후에 다시 시도하니?

등록이 되었다.

 

 

grant resource,connect to c##guest ;
grant select any table to c##guest ;

권한도 이런 식으로 주면 된다.

 

 

 

6. DBeaver로 ORACLE 접속


디비버에서 사용을 위해서는 이렇게 입력을 하면 된다.

여기서도 username 입력할 때 c##을 넣어줘야 한다.

c## 없이 할 수 있는 방법도 있는 것 같으나, 일단 이렇게 진행을 해버려서 나는 이렇게 적는다.

 

 

 

그리고 Test Connection을 해보면!

잘 연결된 것을 확인할 수 있다.

 

 

정말 까다로운 오라클이었다...

MySQL 설치하고, 사용할 때는 뚝딱이었는데..

오라클은 정말 설치하다가, 화가 났다...

뭔가 하나 할 때마다, 계속 브레이크가 걸려서 답답했다.

 

그래도 다행히 설치를 완료했고, 힘들게 설치한 덕분에 실습도 잘 할 수 있었다.

오라클 설치 끝.

이거 이거...

나중에 혹시라도 다시 설치를 하다가, 브레이크 걸릴 수도 있을 것 같아서!

일단 남겨 놓는다.

 

 

 

300x250