[MSSQL] SQL Server외부 접속 허용하기

Useful·2024년 5월 25일

SQL Server

목록 보기
1/1

SQL Server 괜히 썼나 싶기도 하고...


먼저, 이 포스트를 쓰게 된 이유

구글에 SQL Server 원격접속 이라고 치면 그래도 꽤나 많은 포스트들이 있다.
그러나 해당 포스트들은 대부분 많은 설명이나 예외사항이 생략되어 있어 불편했다....🥲🥲
저와 같은 주제로 고민하시는 분들에게 조금이나마 도움이 되고자 이 포스트를 쓴다..

그리고 해당 포스트는

  • SQL Server가 이미 사용자 PC에 설치되어있다는 가정 하에 작성된 포스트입니다.
  • Windows 운영체제를 기준으로 작성된 포스트입니다.

1. 로그인 시, Windows 인증에서 SQL Server 인증으로 바꾸자

  • SQL을 설치했는데, 만약 Windows 인증 으로 되어있다면 SQL Server 인증으로 변경해야 한다.

  • 일단 Windows 인증으로 로그인을 해야한다.

  • 그리고 서버 를 선택 후, 오른쪽 마우스를 클릭하여 속성에 들어간다.

  • 그리고 보안 탭 👉 서버 인증 에서 SQL Server 및 Windows 인증 모드를 클릭 후 선택해준다.

  • 그리고 연결 탭 👉 원격 서버 연결 에서 이 서버에 대한 원격 연결 허용을 선택 후 확인을 누른다.

2. SQL Server 구성 관리자에서 설정

  • 윈도우 시작 👉 구성 관리자 검색 👉 SQL Server 2022 구성 관리자 선택

  • SQL Server 네트워크 구성 하단의 SQLEXPRESS에 대한 프로토콜 을 선택한다
  • 그리고 TCP/IP 의 상태가 사용 안함(기본 값) 으로 설정되어 있다.
  • 오른쪽 마우스 클릭하여 사용 으로 변경해준다.

  • TCP/IP 👉 오른쪽 마우스 클릭 👉 IP 주소 탭에 들어간다
  1. IP4 탭에서 사용 값을 로 변경하여 접속 시, IPv4 주소를 사용한다는 것을 알 수 있다.
  2. 스크롤을 맨 밑으로 내려서 IPAll 속성의 TCP 포트 속성의 값을 1433(기본포트) 로 변경 후 확인적용을 클릭하여 값을 수정한다.

그리고 SQL Server 서비스로 돌아가서 현재 사용중인 SQL Server(SQLEXPRESS) 👉 오른쪽 마우스 클릭 👉 다시시작을 눌러 서비스를 다시 시작해야만 변경 사항이 적용된다.


3. 외부 포트 설정

인바운드 / 아웃바운드 란?

  • 인바운드 규칙
    • 클라이언트가 자신의 서버 데이터에 들어올 수 있는 규칙
    • 다른 컴퓨터(네트워크) 👉 자신의 컴퓨터로 네트워크 데이터가 들어올 수 있도록 규칙을 정의.

  • 아웃바운드 규칙
    • 서버에서 나갈 수 있는 데이터에 대한 규칙
    • 자신의 컴퓨터 👉 다른 컴퓨터(네트워크)로 네트워크 데이터가 나갈 수 있도록 규칙을 정의

일단, 우리는 원격 접속을 위해 방화벽인바인드 규칙을 정의할 것이다.

  • Windows 보안 👉 방화벽 및 네트워크 보호 👉 하단의 고급 설정
  • 아니면 시작 에서 고급 보안이 포함된 Windows Defender 방화벽 을 검색하면 된다.

  • 그리고 인바운드 규칙 👉 오른쪽 마우스 클릭 👉 새 규칙을 클릭하자

규칙 종류는 포트(O)를 선택 후 👉 다음 >

  • 적용할 규칙으로는 TCP(T) 선택
  • 특정 로컬 포트(S) 선택 후, 포트의 값으로 아까 설정한 1433 을 넣어준다.

  • 연결 허용(A) 를 선택 후, 다음 클릭

  • 적용되는 시기는 도메인, 개인, 공용전부 선택해준다. 그리고 다음

그리고 규칙의 이름설명을 대충 적어서 마침을 클릭하여 새 인바인드 규칙을 생성한다.


4. 데이터베이스에 접속할 사용자를 추가해보자

  • 먼저 데이터베이스에 접속을 하자

그리고 개체 탐색기에서 보안 👉 로그인 👉 오른쪽 마우스 클릭 👉 새 로그인을 클릭한다.

  • 일반 탭으로 이동한다.
  • 로그인 이름 : 생성할 로그인 이름(ID)을 입력한다.
  • SQL Server 인증 으로 변경
  • 암호, 암호 확인 : 사용할 암호를 입력한다.
  • 다음 로그인할 때 반드시 암호 변경체크 해제 해준다.

  • 사용자 매핑 탭으로 이동
  • 로그인 시 사용할 데이터베이스를 선택할 수 있다.
  • 확인 버튼을 눌러서 설정을 완료해주면 된다.

5. 이제 접속을 해보자...

  • 먼저 cmd(명령 프롬프트)에 들어가서 다음 명령어를 입력한다
ipconfig /all

  • 그리고 이더넷 어댑터 이더넷:IPv4 주소에 있는 IP주소를 가져온다.

  • 이제 SQL Server Management Studio(SSMS) 에 접속한다
  • 서버 이름 : [ip주소, 포트번호] 형식
    • 예시 ) 192.168.200.119,1433
  • 그리고 로그인암호에 아까 만든 사용자 ID암호를 넣어서 연결 을 클릭한다.

그러면 제대로 접속이 되는 것을 볼 수 있다 👏👏


6. 이제 외부 환경에서 접속해보자..

외부환경에서 접속이 되야 진짜 외부접속이지... 당장 해보자

  • 위에 나와 있는 192.168.xxx.xxx 이런 형식의 ip는 보통 내부 ip라고 볼 수 있다.
  • 하지만 외부에서 접속하려면 자신의 외부 ip(진짜 ip)를 알아야 한다.
  • 이 포스트에서 설명하기엔 너무 긴 내용이라 당장은 그냥 그렇구나 하고 넘어가자

  • 일단, 내 IP주소 확인 👈 클릭해서 자신의 외부(진짜) IP주소를 알 수 있다...
  • 잘 복사해두자..

그리고 접속 테스트를 위해 다른 네트워크 환경에 있는 (와이파이를 쓰고 있는)
노트북에서 접속을 해보려고 한다.

  • 아까 네이버에서 알아온 외부 IP주소 뒤에 포트번호(1433)을 넣고
  • 로그인 ID암호를 넣어서 로그인을 하려고 한다.

⚠️ 그 전에, 먼저 옵션을 추가해야 한다 ⚠️

  • 왜냐면 옵션을 추가 하지 않으면 인증서 오류 가 발생할 수 있기 때문이다.
  • 2가지 작업을 해주면 된다.

  • 먼저 하단에 옵션(O) 버튼을 눌러 옵션 설정을 볼 수 있다.
  • 연결 속성탭 👉 연결 👉 ✅ 서버 인증서 신뢰(S)를 체크 해주어야 한다.

  • 그리고 추가 연결 매개 변수로 이동한다
  • 그리고 다음 텍스트 상자에 값을 적어준다
TrustServerCertificate=True

그리고 다시 옵션(O) << 버튼을 클릭하여 연결 속성을 접어주면 된다.

이제 다시 로그인 탭으로 돌아와서 외부IP 주소와 로그인 정보를 넣고 연결을 클릭하여 연결을 한다.

그러면 외부 환경에서도 제대로 접속이 된다는 것을 알 수 있다 👏

힘들다.. 🥲


⚠️ 다음과 같은 오류가 발생할 수 있습니다. (에러 258)⚠️

원인 1. SQL Server 구성관리자에서 TCP/IP 설정을 허용하지 않았기 때문

원인 2. 공유기 문제 (포트 포워딩)

  • 공유기에서 외부에서 들어오는 접속을 막을 경우가 있다.
  • 필자도 이 문제 때문에 몇시간 삽질을 계속 했다...
  • 하지만 검색해보니 바로 해결책이 나와서 금방 처리되었다..ㅎ
  • 집집마다 공유기의 모델이 다르니.. 포트 포워딩 관련으로 검색해보면 좋은 결과가 나올 것 같다.

원인 3. 보안 프로그램에서 막고 있다. (Window Defender 제외)

  • 안랩(Ahnlab) 등의 백신/보안 프로그램에서 막고 있을 수 있다.
  • 해당 프로그램의 설정에 들어가서 설정을 해줘야 할 수 있다.
  • 혹은 삭제해버리면 되긴하는데... 필자는 화나서 그냥 삭제(안랩)해버렸다

자료 출처 (감사합니다 🥲)

profile
1 commit = 1 life

0개의 댓글