다음을 통해 공유


SQL Server 브라우저 서비스(데이터베이스 엔진 및 SSAS)

SQL ServerBrowser 프로그램은 Windows 서비스로 실행됩니다. SQL Server Browser는 Microsoft SQL Server 리소스에 관한 들어오는 요청을 수신 대기하고 컴퓨터에 설치된 SQL Server 인스턴스에 대한 정보를 제공합니다. SQL Server 브라우저는 다음 작업에 기여합니다.

  • 사용 가능한 서버 목록 찾아보기

  • 올바른 서버 인스턴스에 연결

  • 전용 DAC(관리자 연결) 엔드포인트에 연결

데이터베이스 엔진 및 SSAS의 각 인스턴스에 대해 SQL Server 브라우저 서비스(sqlbrowser)는 인스턴스 이름과 버전 번호를 제공합니다. SQL Server 브라우저는 SQL Server와 함께 설치됩니다.

설치 중에 또는 SQL Server 구성 관리자를 사용하여 SQL Server 브라우저를 구성할 수 있습니다. 기본적으로 SQL Server Browser 서비스는 자동으로 시작됩니다.

  • 설치를 업그레이드할 때

  • 클러스터에 설치할 때

  • SQL Server Express의 모든 인스턴스를 포함하여 데이터베이스 엔진의 명명된 인스턴스를 설치하는 경우

  • Analysis Services의 명명된 인스턴스를 설치하는 경우

배경

SQL Server 2000 이전에는 컴퓨터에 하나의 SQL Server 인스턴스만 설치할 수 있습니다. SQL Server는 공식 IANA(Internet Assigned Numbers Authority)가 SQL Server에 할당한 포트 1433에서 들어오는 요청을 수신 대기했습니다. 하나의 SQL Server 인스턴스만 포트를 사용할 수 있으므로 SQL Server 2000에서 여러 SQL Server 인스턴스에 대한 지원을 도입했을 때 UDP 포트 1434에서 수신 대기하도록 SSRP(SQL Server 확인 프로토콜)가 개발되었습니다. 이 수신기 서비스는 설치된 인스턴스의 이름과 인스턴스에서 사용하는 포트 또는 명명된 파이프로 클라이언트 요청에 응답했습니다. SSRP 시스템의 제한을 해결하기 위해 SQL Server 2005는 SSRP를 대체하는 SQL Server 브라우저 서비스를 도입했습니다.

SQL Server 브라우저 작동 방식

SQL Server 인스턴스가 시작되면 SQL Server에 대해 TCP/IP 프로토콜을 사용하도록 설정하면 서버에 TCP/IP 포트가 할당됩니다. 명명된 파이프 프로토콜을 사용하는 경우 SQL Server는 명명된 특정 파이프에서 수신 대기합니다. 이 포트 또는 "파이프"는 특정 인스턴스에서 클라이언트 애플리케이션과 데이터를 교환하는 데 사용됩니다. 설치하는 동안 TCP 포트 1433 및 파이프 \sql\query 가 기본 인스턴스에 할당되지만 나중에 서버 관리자가 SQL Server Configuration Manager를 사용하여 변경할 수 있습니다. SQL Server의 한 인스턴스만 포트 또는 파이프를 사용할 수 있으므로 SQL Server Express를 포함하여 명명된 인스턴스에 대해 다른 포트 번호와 파이프 이름이 할당됩니다. 기본적으로 사용하도록 설정되면 명명된 인스턴스와 SQL Server Express는 모두 동적 포트를 사용하도록 구성됩니다. 즉, SQL Server가 시작될 때 사용 가능한 포트가 할당됩니다. 원하는 경우 특정 포트를 SQL Server 인스턴스에 할당할 수 있습니다. 연결할 때 클라이언트는 특정 포트를 지정할 수 있습니다. 하지만 포트가 동적으로 할당된 경우 SQL Server를 다시 시작할 때마다 포트 번호가 변경될 수 있으므로 클라이언트에 올바른 포트 번호를 알 수 없습니다.

시작 시 SQL Server Browser는 UDP 포트 1434를 시작하고 클레임합니다. SQL Server 브라우저는 레지스트리를 읽고, 컴퓨터에서 SQL Server의 모든 인스턴스를 식별하고, 사용하는 포트 및 명명된 파이프를 기록합니다. 서버에 네트워크 카드가 두 개 이상 있는 경우 SQL Server 브라우저는 SQL Server에 대해 발생하는 첫 번째 사용 포트를 반환합니다. SQL Server 브라우저는 ipv6 및 ipv4를 지원합니다.

SQL Server 클라이언트가 SQL Server 리소스를 요청하면 클라이언트 네트워크 라이브러리는 포트 1434를 사용하여 서버에 UDP 메시지를 보냅니다. SQL Server 브라우저는 요청된 인스턴스의 TCP/IP 포트 또는 명명된 파이프로 응답합니다. 그런 다음 클라이언트 애플리케이션의 네트워크 라이브러리는 원하는 인스턴스의 포트 또는 명명된 파이프를 사용하여 서버에 요청을 전송하여 연결을 완료합니다. SQL Server 브라우저는 기본 인스턴스에 대한 포트 정보를 반환하지 않습니다.

SQL Server Browser 서비스를 시작하고 중지하는 방법에 대한 자세한 내용은 데이터베이스 엔진, SQL Server 에이전트 또는 SQL Server 브라우저 서비스 시작, 중지, 일시 중지, 다시 시작, 다시 시작을 참조하세요.

SQL Server 브라우저 사용

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

그러나 SQL Server Browser 서비스가 실행되고 있지 않으면 다음 연결이 작동하지 않습니다.

  • 모든 매개 변수(예: TCP/IP 포트 또는 명명된 파이프)를 완전히 지정하지 않고 명명된 인스턴스에 연결을 시도하는 모든 구성 요소입니다.

  • 나중에 다른 구성 요소에서 다시 연결하는 데 사용할 수 있는 서버\인스턴스 정보를 생성하거나 전달하는 모든 구성 요소입니다.

  • 포트 번호 또는 파이프를 제공하지 않고 명명된 인스턴스에 연결합니다.

  • TCP/IP 포트 1433을 사용하지 않는 경우 명명된 인스턴스 또는 기본 인스턴스에 대한 DAC입니다.

  • OLAP 리디렉터 서비스.

  • SQL Server Management Studio, Enterprise Manager 또는 Query Analyzer에서 서버 열거

클라이언트-서버 시나리오에서 SQL Server를 사용하는 경우(예: 애플리케이션이 네트워크를 통해 SQL Server에 액세스하는 경우) SQL Server Browser 서비스를 중지하거나 사용하지 않도록 설정하는 경우 각 인스턴스에 특정 포트 번호를 할당하고 항상 해당 포트 번호를 사용하도록 클라이언트 애플리케이션 코드를 작성해야 합니다. 이 방법에는 다음과 같은 문제가 있습니다.

  • 클라이언트 애플리케이션 코드가 적절한 포트에 연결되도록 업데이트하고 유지 관리해야 합니다.

  • 각 인스턴스에 대해 선택한 포트는 서버의 다른 서비스 또는 애플리케이션에서 사용할 수 있으므로 SQL Server 인스턴스를 사용할 수 없게 됩니다.

클러스터링

SQL Server 브라우저는 클러스터된 리소스가 아니며 한 클러스터 노드에서 다른 클러스터 노드로의 장애 조치(failover)를 지원하지 않습니다. 따라서 클러스터의 경우 클러스터의 각 노드에 대해 SQL Server 브라우저를 설치하고 설정해야 합니다. 클러스터에서 SQL Server 브라우저가 IP_ANY에서 수신 대기합니다.

비고

IP_ANY 수신 대기할 때 특정 IP에서 수신 대기를 사용하도록 설정하면 SQL Server 브라우저에서 발생하는 첫 번째 IP/포트 쌍을 반환하기 때문에 사용자는 각 IP에서 동일한 TCP 포트를 구성해야 합니다.

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

기본적으로 SQL Server 브라우저 프로그램은 C:\Program Files (x86)\Microsoft SQL Server\90\Shared\sqlbrowser.exe설치됩니다.

SQL Server의 마지막 인스턴스가 제거되면 SQL Server 브라우저 서비스가 제거됩니다.

-c 스위치를 사용하여 문제 해결을 위해 명령 프롬프트에서 SQL Server 브라우저를 시작할 수 있습니다.

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

안전

계정 권한

SQL Server Browser는 UDP 포트에서 수신 대기하고 SSRP(SQL Server 확인 프로토콜)를 사용하여 인증되지 않은 요청을 수락합니다. 악의적인 공격에 대한 노출을 최소화하려면 권한이 낮은 사용자의 보안 컨텍스트에서 SQL Server 브라우저를 실행해야 합니다. 로그온 계정은 SQL Server 구성 관리자를 사용하여 변경할 수 있습니다. SQL Server 브라우저에 대한 최소 사용자 권한은 다음과 같습니다.

  • 네트워크에서 이 컴퓨터 액세스 거부

  • 로컬로 로그온 거부

  • 일괄 작업으로 로그온 거부

  • 터미널 서비스를 통한 로그온 거부

  • 서비스로 로그인

  • 네트워크 통신(포트 및 파이프)과 관련된 SQL Server 레지스트리 키 읽기 및 쓰기

기본 계정

설치 프로그램은 설치 중에 서비스에 대해 선택한 계정을 사용하도록 SQL Server 브라우저를 구성합니다. 다른 가능한 계정에는 다음이 포함됩니다.

  • 모든 도메인\로컬 계정

  • 로컬 서비스 계정

  • 로컬 시스템 계정(불필요한 권한이 있는 경우 권장되지 않음)

SQL Server 숨기기

숨겨진 인스턴스는 공유 메모리 연결만 지원하는 SQL Server의 인스턴스입니다. SQL Server의 경우 이 서버 인스턴스에 HideInstance 대한 정보로 SQL Server 브라우저가 응답하지 않아야 함을 나타내도록 플래그를 설정합니다.

방화벽 사용

방화벽 뒤의 서버에서 SQL Server Browser 서비스와 통신하려면 SQL Server에서 사용하는 TCP 포트 외에 UDP 포트 1434를 엽니다(예: 1433). 방화벽 작업에 대한 자세한 내용은 SQL Server 온라인 설명서에서 "방법: SQL Server 액세스를 위한 방화벽 구성"을 참조하세요.

또한 참조하십시오

네트워크 프로토콜 및 네트워크 라이브러리