다음을 통해 공유


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

적용 대상:SQL Server

이 문서에서는 SQL Server 구성 관리자를 사용하여 SQL Server에서 데이터베이스 엔진의 인스턴스를 숨기는 방법을 설명합니다. SQL Server는 SQL Server Browser 서비스를 사용하여 컴퓨터에 설치된 데이터베이스 엔진의 인스턴스를 열거합니다.

이 옵션을 사용하면 클라이언트 애플리케이션에서 서버를 찾아볼 수 있으며 클라이언트가 동일한 컴퓨터에서 데이터베이스 엔진의 여러 인스턴스를 구분할 수 있습니다. 다음 절차를 사용하면 SQL Server Browser 서비스가 찾아보기 단추를 사용하여 인스턴스를 찾으려고 하는 클라이언트 컴퓨터에 데이터베이스 엔진 인스턴스를 노출하는 것을 방지할 수 있습니다.

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를 위해서는 별칭이 필요합니다.

자세한 내용은 클라이언트에서 사용할 서버 별칭 만들기 또는 삭제를 참조하세요.

클러스터된 명명된 인스턴스를 숨기는 경우 레지스트리 키(LastConnect)에 SQL Server가 수신 대기하는 포트와 다른 포트가 있는 경우 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSSQLServer\Client\SNI11.0\LastConnect 클러스터 서비스가 SQL Server에 연결하지 못할 수 있습니다.

클러스터 서비스가 SQL Server에 연결할 수 없는 경우 다음과 유사한 오류가 표시될 수 있습니다.

Event ID: 1001: Event Name: Failover clustering resource deadlock.