SQL Server Browser 사용

업데이트: 2005년 12월 5일

SQL Server Browser는 서버에서 Windows 서비스로 실행됩니다. SQL Server Browser는 SQL Server 리소스에 대해 들어오는 요청을 수신하고 컴퓨터에 설치된 SQL Server 인스턴스에 대한 정보를 제공합니다. 다음 3가지 작업에 SQL Server Browser를 사용할 수 있습니다.

  • 사용할 수 있는 서버 목록 찾아보기
  • 올바른 서버 인스턴스에 연결
  • DAC(관리자 전용 연결) 끝점에 연결

데이터베이스 엔진의 각 인스턴스에서 SQL Server Browser 서비스(sqlbrowser)는 인스턴스 이름과 버전 번호를 제공합니다. SQL Server Browser는 SQL Server 2005와 함께 설치되며 해당 컴퓨터에서 실행 중인 이전 버전의 SQL Server(SQL Server 7.0부터 시작)를 지원합니다.

기본적으로 SQL Server Browser 서비스는 SQL Server Express에서 사용할 수 없습니다. SQL Server Browser는 처음에 노출 영역 구성 도구를 사용하여 구성하고 SQL Server 구성 관리자를 사용하여 관리할 수 있습니다.

배경

SQL Server 2000 이전에는 컴퓨터 한 대에 SQL Server 인스턴스를 하나만 설치할 수 있었습니다. SQL Server는 공식 IANA(Internet Assigned Numbers Authority)에서 SQL Server에 할당한 포트 1433을 통해 들어오는 요청을 수신했습니다. SQL Server의 인스턴스 하나만 포트를 사용할 수 있으므로 SQL Server 2000에서 처음으로 여러 SQL Server 인스턴스를 지원하게 되자 포트 1434로 수신하기 위해 SSRP(SQL Server Resolution Protocol)가 개발되었습니다. 이 수신기 서비스는 설치된 인스턴스 이름과 인스턴스에 사용되는 포트나 명명된 파이프를 사용하여 클라이언트 요청에 응답합니다. SSRP 시스템의 제한을 해결하기 위해 SQL Server 2005는 SSRP를 대신하여 SQL Server Browser 서비스를 제공합니다.

SQL Server Browser 작동 방법

SQL Server 인스턴스가 시작될 때 SQL Server에 대해 TCP/IP 프로토콜이나 VIA 프로토콜이 설정되면 서버에 TCP/IP 포트가 할당됩니다. 명명된 파이프 프로토콜을 설정하면 SQL Server에서 특정 명명된 파이프에서 수신합니다. 이 포트 또는 파이프는 클라이언트 응용 프로그램과 데이터를 교환하기 위해 특정 인스턴스에 사용됩니다. 설치하는 동안 포트 1433과 파이프 \sql\query가 기본 인스턴스에 할당되지만 나중에 서버 관리자가 SQL Server 구성 관리자를 사용하여 변경할 수 있습니다. SQL Server 인스턴스 하나에서만 포트나 파이프를 사용할 수 있으므로 SQL Server Express를 비롯한 명명된 인스턴스에는 다른 포트 번호와 파이프 이름이 할당됩니다. 기본적으로 명명된 인스턴스는 동적 포트를 사용하도록 구성되므로 SQL Server 시작 시 사용 가능한 포트가 할당됩니다. SQL Server 인스턴스에 특정 포트를 할당할 수 있습니다. 연결할 때 클라이언트가 원하는 포트를 지정할 수 있습니다. 그러나 포트가 동적으로 할당될 경우 포트 번호는 SQL Server가 다시 시작될 때마다 변경될 수 있으므로 클라이언트가 정확한 포트 번호를 알지 못합니다.

시작할 때 SQL Server Browser가 시작되어 UDP 포트 1434를 요구합니다. SQL Server Browser는 레지스트리를 읽어 컴퓨터에 있는 모든 SQL Server 인스턴스를 식별하며 사용되는 포트와 명명된 파이프를 기록합니다. 서버에 네트워크 카드가 두 개 이상 있으면 SQL Server Browser가 SQL Server에 사용할 수 있는 모든 포트를 반환합니다. SQL Server 2005 및 SQL Server Browser는 ipv6과 ipv4를 지원합니다.

SQL Server 2000 및 SQL Server 2005 클라이언트가 SQL Server 리소스를 요청하면 클라이언트 네트워크 라이브러리에서 포트 1434를 사용하는 서버로 UDP 메시지를 보냅니다. SQL Server Browser에서는 요청된 인스턴스의 TCP/IP 포트나 명명된 파이프를 사용하여 응답합니다. 그러면 클라이언트 응용 프로그램에 네트워크 라이브러리가 원하는 인스턴스의 포트나 명명된 파이프를 사용하여 서버로 요청을 보내 연결을 완료합니다.

SQL Server Browser 사용

SQL Server Browser 서비스가 실행되고 있지 않아도 올바른 포트 번호나 명명된 파이프를 제공하면 SQL Server에 연결할 수 있습니다. 예를 들어 SQL Server의 기본 인스턴스가 포트 1433에서 실행 중이면 TCP/IP로 이 인스턴스에 연결할 수 있습니다.

다음 연결은 작동하지 않습니다.

  • TCP/IP 포트나 명명된 파이프와 같은 모든 매개 변수를 완전히 지정하지 않고 명명된 인스턴스에 연결하려고 하는 구성 요소
  • 다시 연결하기 위해 다른 구성 요소에서 나중에 사용할 수 있는 서버나 인스턴스 정보를 생성하거나 전달하는 구성 요소
  • 포트 번호나 파이프를 제공하지 않고 명명된 인스턴스에 연결. 명명된 인스턴스로 데이터를 미러하거나 명명된 인스턴스를 클러스터링하는 경우가 여기에 포함됩니다.
  • TCP/IP 포트 1434를 사용하지 않을 경우 명명된 인스턴스나 기본 인스턴스에 대한 관리자 전용 연결
  • OLAP 리디렉터 서비스
  • SQL Server Management Studio, 엔터프라이즈 관리자 또는 쿼리 분석기에 서버 열거

응용 프로그램이 네트워크에서 SQL Server에 액세스하는 경우처럼 클라이언트-서버 시나리오에서 SQL Server를 사용하는 경우 SQL Server Browser 서비스를 중지하거나 해제하면 각 인스턴스에 특정 포트 번호를 할당하고 해당 포트 번호를 항상 사용하도록 클라이언트 응용 프로그램 코드를 작성해야 합니다. 이 방법에는 다음과 같은 문제점이 있습니다.

  • 클라이언트 응용 프로그램 코드를 업데이트하고 유지 관리하여 올바른 포트에 연결하도록 해야 합니다.
  • 각 인스턴스에 대해 선택한 포트를 서버의 다른 서비스나 응용 프로그램에서 사용하면 SQL Server 인스턴스를 사용할 수 없게 됩니다.

SQL Server 2000을 사용하여 단계별 설치

SQL Server 2000에서는 SQL Server 서비스가 서버 연결 끝점을 식별합니다. SQL Server 2005에서는 이 기능 대신 SQL Server Browser 서비스를 사용합니다. SQL Server를 SQL Server 2000 또는 MSDE가 실행 중인 컴퓨터에 설치하려면 SP3 이상으로 업그레이드해야 합니다. SP3 이전 버전에서는 포트 1434를 제대로 공유하지 않으며 SQL Server 인스턴스를 클라이언트 응용 프로그램 요청에 사용하지 못할 수도 있습니다. 서비스 시작 순서를 변경하여 SQL Server 2000이나 MSDE보다 먼저 SQL Server Browser 서비스를 시작할 수도 있지만 이전 버전의 SQL Server를 모두 최신 서비스 팩으로 업데이트하는 것이 좋습니다.

컴퓨터에 서비스 팩 3a 이상으로 업데이트되지 않은 SQL Server 2000 인스턴스가 설치되면 SQL Server Browser가 실행되고 있지 않을 경우 SQL Server 2000 수신기 서비스가 시작됩니다. 수신기 서비스보다 나중에 SQL Server Browser가 시작되면 SQL Server 2000이 포트 1434 사용을 중지할 때까지 5초 동안 기다립니다. 포트 사용이 중지되지 않으면 SQL Server Browser가 시작되지 않습니다. SP3a 이전 버전의 SQL Server 2000 관련 문제를 해결하려면 SQL Server 2000을 중지하고 SQL Server Browser를 시작한 다음 SQL Server 2000을 다시 시작합니다. SQL Server 2000 수신기 서비스가 포트 1434에서 시작하려고 계속해서 시도하므로 가급적 빨리 SQL Server 2000 인스턴스를 SP3a 이상으로 업그레이드해야 합니다.

SQL Server 7.0은 SQL Server Browser와 충돌하지 않습니다.

명령줄에서 설치, 제거 및 실행

기본적으로 SQL Server Browser 프로그램은 C:\Program Files\Microsoft SQL Server\90\Shared\sqlbrowser.exe에 설치됩니다. 컴퓨터에 SQL Server 2000이 설치되어 있지만 SP3으로 업그레이드되지 않은 경우 그리고 SQL Server 2000 인스턴스를 업그레이드하고 있지 않은 경우 SQL Server 2005를 설치하는 동안 SQL Server 2000을 중지해야 합니다. SQL Server 2000이 실행 중이면 SQL Server Browser가 시작되어 포트 1434를 요구할 수 없으며 연결되지 않아 설치하지 못할 수도 있습니다.

마지막 SQL Server 2005 인스턴스가 제거될 때 SQL Server Browser 서비스도 제거됩니다. SQL Server 2000의 인스턴스는 원래의 동작을 재개합니다.

-c 스위치를 사용하여 명령줄에서 SQL Server Browser를 시작하여 문제를 해결할 수 있습니다.

<drive>\<path>\sqlbrowser.exe -c

보안

계정 권한

SQL Server Browser는 UDP 포트에서 수신하고 SSRP(SQL Server Resolution Protocol)를 사용하여 인증되지 않은 요청을 허용합니다. 악의적 공격을 최대한 차단하려면 권한이 낮은 사용자의 보안 컨텍스트에서 SQL Server Browser를 실행해야 합니다. 기본적으로 SQL Server Browser는 로컬 시스템 계정을 사용하여 시작합니다. Windows 서비스 프로그램을 사용하여 로그온 계정을 변경할 수 있습니다. SQL Server Browser의 최소 사용자 권한은 다음과 같습니다.

  • 네트워크에서 이 컴퓨터로의 액세스 거부
  • 로컬 로그온 거부
  • 일괄 작업으로 로그온 거부
  • 터미널 서비스를 통한 로그온 거부
  • 서비스로 로그온
  • 네트워크 통신(포트 및 파이프) 관련 SQL Server 레지스트리 키 읽기 및 쓰기

기본 계정

설치하는 동안 서비스에 대해 선택한 계정을 사용하도록 SQL Server Browser를 구성합니다. 사용할 수 있는 다른 계정은 다음과 같습니다.

  • 모든 domain\local 계정
  • 로컬 서비스 계정(W2K 플랫폼에서는 사용할 수 없음)
  • 로컬 시스템 계정(불필요한 권한이 있으면 권장되지 않음)

SQL Server 숨기기

숨겨진 인스턴스는 공유 메모리 연결만 지원하는 SQL Server 인스턴스입니다. SQL Server 2005의 경우 HideInstance 레지스트리 키는 SQL Server Browser가 이 서버 인스턴스에 대한 정보를 사용하여 응답할 수 없다는 것을 나타냅니다. 또한 SQL Server Browser에서는 서버 네트워크 유틸리티를 통해 HideServer 옵션을 설정하여 인스턴스를 숨길 수 있는 SQL Server 2000 메서드를 지원합니다. 자세한 내용은 SQL Server 2005 온라인 설명서의 방법: SQL Server 데이터베이스 엔진 인스턴스 숨기기를 참조하십시오.

방화벽 사용

방화벽을 통해 서버의 SQL Server Browser 서비스와 통신하려면 UDP 포트 1434 및 SQL Server에 사용되는 TCP 포트(예: 1433)를 여십시오. 자세한 내용은 SQL Server 2005 온라인 설명서의 방법: SQL Server 액세스를 허용하도록 방화벽 구성을 참조하십시오.

참고 항목

작업

방법: SQL Server Browser 서비스의 시작 및 중지(SQL Server Express)

도움말 및 정보

SQL Server 2005 지원 받기