[Oracle] 외부에서 로컬DB 접속하기
목적
- 팀 프로젝트를 위한 공용DB 필요
- 두 대 이상의 PC에서 작업하여 각 PC별 로컬DB 설치가 번거로움
- PC에 DB를 생성해두고 외부에서 노트북으로 PC내 DB에 접근하고 싶음
등의 이유로 특정 PC에 생성해둔 DB로 외부에서 접근하고 싶을 때 다음과 같은 절차를 이용하면 도움이 될 수 있다.
당연하게도 로컬이 되는 PC(DB가 있는 PC)가 켜져있을 때만 DB관련 작업이 가능하다.
※ DB에 직접적으로 접근하는 방법임, DB 연결 관련은 DB_LINK를 키워드로 검색해보자.
※ 기타 보안 문제는 잘 모름 + 필수적이지 않은 설정도 있을 수 있음.
[로컬이 되는 PC - 파일 설정]
위 경로로 이동하면 listener.ora와 tnsnames.ora 파일이 있다.
경로는 pc마다 다를 수 있다(로컬디스크에서 파일명 검색을 한다던가.. 해보면 된다).
[listener.ora]
우선 listener.ora 파일에서 LISTENER 부분에 host가 본인 PC이름으로 되어있는지 확인한다.
안되어 있으면 바꿔주면 된다.
확인법 : window키 + pause OR 내PC 우클릭 - 속성
[tnsnames.ora]
마찬가지로 tnsnames.ora 파일도 위와 같은 부분에 PC이름으로 되어있는지 확인 후 바꿔준다.
[로컬이 되는 PC - 포트포워딩]
공유기 설정을 해줘야 한다.
포트포워딩 관련 내용을 자세히 알고 싶으면 검색해보자..(게으름에 늦게 기록을 남겨 다 까먹었다)
정확한지 모르겠지만 이걸 해야되는 이유를 설명해보자면,
- 일단 외부에서 접속하려면 우선 해당 PC(접근하고자 하는 PC)의 주소가 필요함.
- 명령 프롬프트에서 뭐 입력(ipconfig)해서 알아낼 수 있는데, 이렇게 알아낸 ip는 공유기가 할당해준 ip임. 외부에서 접근하려고 해도 해당 주소만으로는 부족함.
- 또한 포트(서버 어플리케이션을 구분하기 위해 사용하는 번호..port니까 뭐 항구 같은거라고 생각하면 될거같다. 오징어 배는 1번 항구, 고등어 배는 2번 항구 뭐 이런)도 알아야함. → ip주소 + 포트번호 123.234.2.1:5000 뭐 이렇게
- 근데 외부에서 누군가 공유기의 특정 포트를 통해 접근을 하면(ex. 고등어 배 들어옴) 해당 공유기에 연결된 pc나 노트북, 스마트폰 등 중 어떤 기기의 포트에 연결되어야 하는지(ex. 세 지역 다 2번 항구가 있는데..어디로..) 공유기가 모름.
- 이걸 설정해주는걸 포트포워딩이라고 보면됨.
따라서 필요한 것
- 내 공유기의 IP라고 볼 수 있는 외부IP 주소
- 공유기가 할당해준 내 DB가 있는 PC의 IP 주소
- 지정해줄 포트 번호
우선 IP주소부터 알아보자.
명령프롬프트를 열고 ipconfig라고 입력한 후 엔터를 치면 위와 같은 창이 나온다.
테두리 있는 부분을 적어두자.
이제 브라우저를 열고 공유기 설정으로 들어간다(위에 기본 게이트웨이 주소 입력하면 나올 거임 아마도).
공유기 설정은 사용하는 공유기마다 다르므로 각각 상황에 맞춰서 하면 된다.
설정 화면으로 들어가서 포트포워드 설정 또는 NAT 포워딩 등의 키워드를 찾아보면 된다.
대충 위와 비슷한 설정들을 할 수 있을 걸로 생각된다.
- Device IP Address : 명령프롬프트에서 알아낸 IP주소
- External Port : 외부에서 접근할 때 이용하는 포트 번호
- Internal Port : 외부에서 들어왔을 때 연결해줄 내부의 포트 번호
여기서는 오라클DB에 접근하는 방법을 적고 있으므로 오라클 포트 번호인 1521로 해줬다.
외부에서 공유기의 1521 포트로 접근하면 위에 설정한 디바이스의 1521포트로 연결해주는 뭐 그런 걸로 보면 될 것 같다.
[로컬이 되는 PC - 방화벽설정]
위에서 설정한 포트로 접근하려면 해당 포트에 대해 방화벽 설정을 해줘야 한다.
제어판 - 시스템 및 보안 - Windows Defender 방화벽 - 고급설정 - 인바운드 규칙 - 새규칙
이후부턴 그냥 따라하면 된다.
이건 목적에 따라 설정하면 된다.
이름도 취향껏 설정하면 된다.
[로컬이 되는 PC - DB생성]
이제 로컬이 될 PC에 DB생성을 해주면 된다.
명령프롬프트 - sqlplus 입력 - 사용자명과 비밀번호를 입력해서 접속한다.
이용할 계정을 생성하고 권한을 부여해주면 된다.
create user c##아이디 identified by 비밀번호;
grant resource,dba,connect to c##아이디
이렇게 하면 될 것 같다.
이제 sqldeveloper에 접속한다.
Oracle 접속 우클릭 - 새접속
이제 저장하면 새로 DB가 생성된 것이 보일 것이다.
이렇게까지 다 했다면 DB가 생성된 PC에서 할 설정은 끝이다.
마지막으로 다른 PC 또는 다른 사람이 외부에서 생성된 DB로 접근하기 위해서는 외부IP주소가 필요하다.
네이버나 구글에 내IP 또는 IP address 등을 검색해보자.
이렇게 해서 나온 IP를 알아두어야 외부에서 접속이 가능하다.
[외부에서 접속하는PC]
외부 PC에서도 sqldeveloper를 통해 DB를 생성해준다.
이름은 마음대로 설정해도 되지만 사용자 이름과 비밀번호는 호스트가 되는 PC의 정보여야 한다.
아래의 호스트 이름에는 위에서 확인한 로컬이 되는PC의 외부IP 주소를 적어준다.
이후 저장하고 접속하면 완료된다.
테이블을 생성하거나 할 때 SQL문을 작성하고 커밋해야 반영된다(f11).