본문 바로가기

Server Story....

[Windows Server 2022] MSSQL Express 설치 및 파이썬 연동을 위한 외부 접속 설정 가이드

반응형

1. 서론: 웹 서버의 단짝, 데이터베이스(DB) 구축하기

지난 포스팅에서 우리는 IIS 웹 서버를 구축하고 파이썬으로 상태를 체크하는 법을 배웠습니다. 하지만 진정한 웹 서비스의 완성은 데이터를 저장하고 관리하는 '데이터베이스'에 있습니다.

오늘은 윈도우 환경에서 가장 널리 쓰이는 MSSQL(Microsoft SQL Server) Express를 설치하고, 내 PC가 아닌 외부에서도 접속할 수 있도록 네트워크 설정을 최적화해 보겠습니다.

💡 시작 전 필수 체크! MSSQL은 1433 포트를 사용하므로, 기본적인 방화벽 개념이 필요합니다. 아직 서버의 보안 설정을 마치지 않으셨다면 **Windows Server 2022 RDP 및 방화벽 설정 가이드**를 먼저 참고하여 서버 인프라의 기초를 다지고 오시는 것을 추천합니다.


2. MSSQL Express 설치 단계

  1. 설치 파일 다운로드: MS 공식 홈페이지에서 SQL Server 2022 Express 에디션을 다운로드합니다.
  2. 설치 유형: '기본' 대신 **'사용자 지정'**을 선택하여 데이터 경로와 인스턴스 명칭을 직접 확인하는 것이 관리에 유리합니다.
  3. 인증 모드: 매우 중요한 부분입니다! 반드시 **'혼합 모드(SQL Server 및 Windows 인증)'**를 선택하고, 관리자(sa) 계정의 비밀번호를 강력하게 설정하세요.

3. 외부 접속을 위한 네트워크 구성 (TCP/IP 활성화)

설치만 한다고 외부에서 접속되는 것이 아닙니다. MSSQL은 기본적으로 외부 접속이 차단되어 있습니다.

  1. SQL Server 구성 관리자 실행
  2. [SQL Server 네트워크 구성] -> [MSSQLSERVER에 대한 프로토콜] 선택
  3. TCP/IP 항목이 '사용 안 함'으로 되어 있다면 마우스 우클릭 후 **'사용'**으로 변경합니다.
  4. IP 주소 탭에서 맨 아래 IPAll 항목의 TCP 포트가 1433으로 되어 있는지 확인합니다.

4. 방화벽 규칙 추가 (PowerShell 코드)

이제 1433 포트를 열어줄 차례입니다. GUI로 해도 되지만, 우리는 효율적인 관리를 위해 지난번처럼 PowerShell을 활용해 보겠습니다.

PowerShell
 
# MSSQL 기본 포트(1433) 허용 규칙 추가
New-NetFirewallRule -DisplayName "MSSQL Server (TCP 1433)" `
    -Direction Inbound -Protocol TCP -LocalPort 1433 -Action Allow

# 브라우저 서비스(UDP 1434) 허용 - 인스턴스 나열용
New-NetFirewallRule -DisplayName "MSSQL Browser (UDP 1434)" `
    -Direction Inbound -Protocol UDP -LocalPort 1434 -Action Allow

5. 파이썬(Python)으로 DB 연결 테스트하기

DB가 잘 구동되는지 확인하기 위해 직접 쿼리문을 날려보겠습니다. 파이썬의 pyodbc 라이브러리를 사용하면 간단합니다.

Python
 
import pyodbc

# 접속 정보 설정
conn_str = (
    "DRIVER={SQL Server};"
    "SERVER=localhost;"
    "DATABASE=master;"
    "UID=sa;"
    "PWD=자신의비밀번호"
)

try:
    conn = pyodbc.connect(conn_str)
    print("✅ MSSQL 서버 연결 성공!")
    cursor = conn.cursor()
    cursor.execute("SELECT @@VERSION")
    row = cursor.fetchone()
    print(f"서버 버전 정보: {row[0]}")
    conn.close()
except Exception as e:
    print(f"🚨 연결 실패: {e}")

6. 마무리하며: 서버 모니터링의 확장

이제 윈도우 서버에서 웹(IIS)과 데이터베이스(MSSQL)가 모두 준비되었습니다. 서버 관리자라면 이제 이 두 서비스가 잘 돌아가는지 상시 감시해야겠죠?

지난 시간에 제작한 **파이썬 실시간 서버 모니터링 도구**에 오늘 배운 DB 연결 체크 로직을 추가해 보세요. 웹 서비스뿐만 아니라 DB의 가동 상태까지 한눈에 파악할 수 있는 강력한 관리 툴이 완성됩니다.

다음 시간에는 드디어 Windows 환경을 벗어나, 개발자들의 필수 역량인 Linux(Ubuntu) 서버 구축과 관리에 대해 알아보겠습니다.

반응형