SQL Server 데이터베이스 엔진의 인스턴스 숨기기

적용 대상:SQL Server

이 항목에서는 SQL Server 구성 관리자를 사용하여 SQL Server에서 데이터베이스 엔진 인스턴스를 숨기는 방법에 대해 설명합니다. SQL Server는 SQL Server Browser 서비스를 사용하여 컴퓨터에 설치된 데이터베이스 엔진의 인스턴스를 열거합니다. 이렇게 하면 클라이언트 애플리케이션에서 서버를 검색하고 클라이언트가 같은 컴퓨터에 있는 데이터베이스 엔진의 여러 인스턴스를 구분할 수 있습니다. 다음 절차를 사용하면 SQL Server Browser 서비스가 찾아보기 단추를 사용하여 인스턴스를 찾으려고 하는 클라이언트 컴퓨터에 데이터베이스 엔진 인스턴스를 노출하는 것을 방지할 수 있습니다.

SQL Server 구성 관리자 사용

SQL Server 데이터베이스 엔진 인스턴스를 숨기는 방법

  1. SQL Server 구성 관리자에서 SQL Server 네트워크 구성을 확장하고, <서버 인스턴스>에 대한 프로토콜을 마우스 오른쪽 단추로 클릭한 다음, 속성을 선택합니다.

  2. 플래그 탭의 HideInstance 상자에서 를 선택한 다음, 확인을 클릭하여 대화 상자를 닫습니다. 변경 내용은 새 연결에 즉시 적용됩니다.

설명

명명된 인스턴스를 숨기는 경우 브라우저 서비스가 실행 중인 경우에도 숨겨진 인스턴스에 연결하려면 연결 문자열 포트 번호를 제공해야 합니다. 명명된 숨겨진 인스턴스에 대한 동적 포트 대신 정적 포트를 사용하는 것이 좋습니다.
자세한 내용은 특정 TCP 포트로 수신하도록 서버 구성(SQL Server 구성 관리자)을 참조하세요.

클러스터링

클러스터형 인스턴스 또는 가용성 그룹 이름을 숨기면 클러스터 서비스가 SQL Server에 연결하지 못할 수도 있습니다. 이로 인해 클러스터 인스턴스 IsAlive 검사에 실패하고 SQL Server가 오프라인 상태가 됩니다.

이 문제를 방지하려면 인스턴스에 대해 구성한 정적 포트를 반영하도록 클러스터된 인스턴스의 모든 노드 또는 가용성 그룹 복제본을 호스트하는 모든 인스턴스에 별칭을 만듭니다. 예를 들어 두 개의 복제본(replica)이 있는 가용성 그룹에서 노드 1에서 노드 2 인스턴스에 대한 별칭을 만듭니다(예: node-two\instancename). 노드 2에서는 node-one\instancename이라는 별칭을 만듭니다. 별칭은 성공적인 장애 조치(failover)에 필요합니다.

자세한 내용은 클라이언트에서 사용할 서버 별칭 만들기 또는 삭제(SQL Server 구성 관리자)를 참조하세요.

클러스터된 명명된 인스턴스를 숨기는 경우 LastConnect 레지스트리 키(HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSSQLServer\Client\SNI11.0\LastConnect)에 SQL Server가 수신 대기 중인 포트와 다른 포트가 있는 경우 클러스터 서비스가 SQL Server에 연결하지 못할 수 있습니다. 클러스터 서비스가 SQL Server에 연결할 수 없는 경우 다음과 유사한 오류가 표시될 수 있습니다.
이벤트 ID: 1001: 이벤트 이름: 장애 조치(failover) 클러스터링 리소스 교착 상태.

참고 항목

서버 네트워크 구성
SQL 가상 서버 클라이언트 연결에 대한 설명(영문)
SQL Server 명명된 인스턴스에 정적 포트를 할당하고 일반적인 문제를 방지하는 방법