다음을 통해 공유


SQL Server Browser 서비스(데이터베이스 엔진 및 SSAS)

적용 대상:SQL Server - Windows만 해당

SQL Server 브라우저(sqlbrowser)는 클라이언트 컴퓨터가 Windows를 실행하는 서버에서 SQL Server 인스턴스를 찾을 수 있도록 서비스로 실행됩니다. SQL Server Browser는 SQL Server 함께 설치됩니다. SQL Server Browser 서비스를 구성할 필요는 없지만 일부 연결 시나리오에서 실행 중이어야 합니다.

SQL Server 브라우저는 다음을 수행할 수 있습니다.

  • 사용 가능한 서버 목록을 검색합니다. 데이터베이스 엔진 및 SSAS( SQL Server Analysis Services )의 각 인스턴스에 대해 SQL Server Browser 서비스는 인스턴스 이름과 버전 번호를 제공합니다.

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

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

SQL Server Browser 서비스 구성

SQL Server Configuration Manager를 설치하거나 사용하는 동안 SQL Server 브라우저를 구성할 수 있습니다. 기본적으로 SQL Server Browser 서비스는 자동으로 시작됩니다.

  • 설치를 업그레이드하는 경우
  • 클러스터에 설치하는 경우
  • SQL Server Express의 모든 인스턴스를 포함하여 데이터베이스 엔진의 명명된 인스턴스를 설치하는 경우
  • SSAS의 명명된 인스턴스를 설치하는 경우

SQL Server 브라우저 작동 방식

다음 섹션에서는 SQL Server Browser 서비스의 작동 방식을 설명합니다.

TCP/IP 포트 또는 명명된 파이프 할당

SQL Server 인스턴스가 시작되고 SQL Server에 대해 TCP/IP 프로토콜을 사용하도록 설정하면 인스턴스에 TCP/IP 포트가 할당됩니다. 명명된 파이프 프로토콜을 사용하는 경우 SQL Server는 명명된 특정 파이프에서 수신 대기합니다. 이 포트 또는 명명된 파이프는 특정 인스턴스에서 클라이언트 애플리케이션과 데이터를 교환하는 데 사용됩니다. 설치하는 동안 TCP/IP 포트 1433 및 파이프 \sql\query 가 기본 인스턴스에 할당됩니다. 서버 관리자는 SQL Server 구성 관리자를 사용하여 포트 또는 명명된 파이프를 변경할 수 있습니다.

명명된 인스턴스 및 동적 포트

SQL Server의 한 인스턴스만 포트 또는 파이프를 사용할 수 있으므로 SQL Server Express 버전을 포함하여 명명된 인스턴스에 대해 다른 포트 번호와 파이프 이름이 할당됩니다. 사용하도록 설정하면 명명된 인스턴스와 SQL Server Express는 기본적으로 동적 포트를 사용하도록 구성됩니다. 즉, SQL Server가 시작될 때 사용 가능한 포트가 할당됩니다.

필요할 경우 SQL Server 인스턴스에 특정 포트를 할당할 수 있습니다. 클라이언트는 SQL Server에 연결할 때 특정 포트를 지정할 수 있습니다. 그러나 포트가 동적으로 할당된 경우 SQL Server 인스턴스가 다시 시작될 때마다 포트 번호가 변경될 수 있으므로 클라이언트에 올바른 포트 번호를 알 수 없습니다.

SQL Server 시작 프로세스 및 포트 검색

시작 시 SQL Server 브라우저는 UDP(사용자 데이터그램 프로토콜) 포트 1434를 시작하고 클레임합니다. SQL Server 브라우저는 레지스트리를 읽고, 컴퓨터의 모든 SQL Server 인스턴스를 식별하고, 사용하는 포트 및 명명된 파이프를 기록합니다. 서버에 네트워크 카드가 두 개 이상 있으면 SQL Server Browser가 SQL Server에 사용할 수 있는 포트 중 처음 발견된 포트를 반환합니다. SQL Server 브라우저는 IPv4 및 IPv6을 지원합니다.

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

SQL Server Browser 서비스를 시작하고 중지하는 방법에 대한 자세한 내용은 SQL Server 서비스 시작, 중지, 일시 중지, 다시 시작 및 다시 시작을 참조하세요.

SQL Server 브라우저 사용

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

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

  • TCP/IP 포트나 명명된 파이프와 같은 모든 매개 변수를 완전히 지정하지 않고 명명된 인스턴스에 연결하려고 하는 구성 요소

  • 나중에 다른 구성 요소가 다시 연결하는 데 사용할 수 있는 정보를 생성하거나 전달하는 <server>\<instance> 모든 구성 요소입니다.

  • 포트 번호나 파이프를 제공하지 않고 명명된 인스턴스에 연결

  • 데이터베이스 관리자가 TCP/IP 포트를 사용하지 않는 경우, 명명된 인스턴스나 기본 인스턴스에 대한 진단 연결을 수행합니다1433.

  • OLAP(온라인 분석 처리) 리렉터 서비스입니다.

  • SQL Server Management Studio에서 서버 열거

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

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

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

클러스터 및 SQL Server 브라우저

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

참고

SQL Server 브라우저가 IP_ANY에서 수신 대기하고 특정 IP 주소에서 수신을 활성화할 경우, SQL Server 브라우저는 발견한 첫 번째 IP 주소와 포트 쌍을 반환하므로 각 IP 주소에 동일한 TCP/IP 포트를 구성해야 합니다.

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

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

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

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

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

보안

SQL Server 브라우저 서비스는 SQL Server 인스턴스와의 네트워크 통신을 용이하게 하는 데 매우 중요합니다.

SQL Server Browser 서비스에 대한 보안 조치는 다음과 같습니다.

  • 트래픽을 허용하도록 방화벽 구성

  • 신뢰할 수 있는 IP 주소에 대한 액세스 제한

  • 패치 취약성에 업데이트를 정기적으로 적용합니다.

  • 또한 강력한 인증 및 권한 부여 정책을 구현하여 무단 액세스를 방지하고 SQL Server 환경의 무결성을 유지해야 합니다.

계정 권한

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

SQL Server 브라우저에 대한 최소 사용자 권한은 다음과 같습니다.

  • 네트워크에서 이 컴퓨터 액세스 거부
  • 로컬로 로그인을 거부합니다.
  • 일괄 작업으로 로그인을 거부합니다.
  • 터미널 서비스를 통해 로그온을 거부합니다.
  • 서비스 계정으로 로그인합니다.
  • 네트워크 통신(포트 및 파이프)과 관련된 SQL Server 레지스트리 키를 읽고 씁니다.

기본 계정

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

  • 모든 도메인 로컬 계정.
  • 로컬 서비스 계정입니다.
  • 로컬 시스템 계정(불필요한 권한이 있으므로 권장되지 않음)

SQL Server 숨기기

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

방화벽 사용

방화벽 뒤의 서버에서 SQL Server Browser 서비스와 통신하려면 UDP 포트 1434 및 SQL Server에서 사용하는 TCP/IP 포트(예: 1433)를 엽니다. 방화벽 작업에 대한 자세한 내용은 SQL Server 액세스를 허용하도록 Windows 방화벽 구성을 참조하세요.