Transact-SQL 디버거를 실행하기 전에 방화벽 규칙 구성

적용 대상:SQL Server

Transact-SQL 쿼리 편집기와 다른 컴퓨터에서 실행 중인 데이터베이스 엔진 인스턴스에 연결된 경우 데이터베이스 엔진 디버깅을 사용하도록 Windows 방화벽 규칙을 구성해야 합니다.

이 기능은 SSMS 버전 17.9.1 이하 버전에서 작동합니다.

Transact-SQL 디버거 구성

Transact-SQL 디버거는 서버 쪽 구성 요소와 클라이언트 쪽 구성 요소를 모두 포함합니다. 서버 쪽 디버거 구성 요소는 SQL Server 2005(9.x) SP2(서비스 팩 2) 이상 버전의 각 데이터베이스 엔진 인스턴스와 함께 설치됩니다. 클라이언트 쪽 디버거 구성 요소는 다음과 같은 경우에 설치됩니다.

  • SQL Server 2008(10.0.x) 이상 버전에서 클라이언트 쪽 도구를 설치할 때

  • Microsoft Visual Studio 2010 이상 버전을 설치할 때

  • 웹 다운로드에서 SSDT(SQL Server Data Tools)를 설치할 때

SQL Server Management Studio 또는 SQL Server Data Tools가 SQL Server 데이터베이스 엔진 인스턴스와 동일한 컴퓨터에 실행되는 경우 Transact-SQL 디버거를 실행하기 위한 구성 요구 사항이 없습니다. 그러나 데이터베이스 엔진의 원격 인스턴스에 연결된 경우 Transact-SQL 디버거를 실행하려면 두 컴퓨터 모두에서 Windows 방화벽의 프로그램 및 포트 규칙을 사용하도록 설정해야 합니다. 이러한 규칙은 SQL Server 설치 프로그램에서 만들 수 있습니다. 원격 디버거 세션을 열려고 하는 동안 오류가 발생하면 다음 방화벽 규칙이 컴퓨터에 정의되어 있는지 확인합니다.

고급 보안이 포함된 Windows 방화벽 애플리케이션을 사용하여 방화벽 규칙을 관리합니다. Windows 7 및 Windows Server 2008 R2에서 제어판, Windows 방화벽을 차례로 열고 고급 설정을 선택합니다. Windows Server 2008 R2에서는 서비스 관리자를 열고 왼쪽 창에서 구성을 확장한 다음 고급 보안이 포함된 Windows 방화벽을 확장할 수도 있습니다.

주의

Windows 방화벽의 규칙을 사용하도록 설정하면 방화벽에 의해 차단되도록 설계된 컴퓨터가 보안 위협에 노출될 수 있습니다. 원격 디버깅에 대한 규칙을 사용하도록 설정하면 이 항목에 나열된 포트와 프로그램이 차단됩니다.

서버의 방화벽 규칙

데이터베이스 엔진인스턴스를 실행하는 컴퓨터에서 고급 보안이 포함된 Windows 방화벽 을 사용하여 다음 정보를 지정합니다.

  • sqlservr.exe에 대한 인바운드 프로그램 규칙을 추가합니다. 원격 디버깅 세션을 지원해야 하는 인스턴스당 하나의 규칙이 있어야 합니다.

    1. 고급 보안이 포함된 Windows 방화벽의 왼쪽 창에서 인바운드 규칙을 마우스 오른쪽 단추로 클릭한 다음 작업 창에서 새 규칙 을 선택합니다.

    2. 규칙 유형 대화 상자에서 프로그램을 선택하고 다음을 선택합니다.

    3. 프로그램 대화 상자에서 다음 프로그램 경로:를 선택하고 이 인스턴스에 대한 sqlservr.exe의 전체 경로를 입력합니다. 기본적으로 sqlservr.exe은(는) C:\Program Files\Microsoft SQL Server\MSSQL13.<InstanceName>\MSSQL\Binn에 설치되며, 여기서 <InstanceName>은(는) 기본 인스턴스의 경우 MSSQLSERVER(이)고 명명된 인스턴스의 경우 인스턴스 이름입니다.

    4. 동작 대화 상자에서 연결 허용을 선택하고 다음을 선택합니다.

    5. 프로필 대화 상자에서 해당 인스턴스와 함께 디버깅 세션을 열 때의 컴퓨터 연결 환경을 설명하는 프로필을 선택하고 다음을 선택합니다.

    6. 이름 대화 상자에 이 규칙의 이름 및 설명을 입력한 다음 마침을 선택합니다.

    7. 인바운드 규칙 목록에서 방금 만든 규칙을 마우스 오른쪽 단추로 클릭한 다음 동작 창에서 속성 을 선택합니다.

    8. 프로토콜 및 포트 탭을 선택합니다.

    9. 프로토콜 종류: 상자에서는 TCP 를 선택하고 로컬 포트: 상자에서는 RPC 동적 포트 를 선택한 후에 적용, 확인을 차례로 선택합니다.

  • svchost.exe에 대한 인바운드 프로그램을 추가하여 원격 디버거 세션에서 DCOM 통신을 사용하도록 설정합니다.

    1. 고급 보안이 포함된 Windows 방화벽의 왼쪽 창에서 인바운드 규칙을 마우스 오른쪽 단추로 클릭한 다음 작업 창에서 새 규칙 을 선택합니다.

    2. 규칙 유형 대화 상자에서 프로그램을 선택하고 다음을 선택합니다.

    3. 프로그램 대화 상자에서 다음 프로그램 경로:를 선택하고 svchost.exe의 전체 경로를 입력합니다. 기본적으로 svchost.exe%systemroot%\System32\svchost.exe에 설치됩니다.

    4. 동작 대화 상자에서 연결 허용을 선택하고 다음을 선택합니다.

    5. 프로필 대화 상자에서 해당 인스턴스와 함께 디버깅 세션을 열 때의 컴퓨터 연결 환경을 설명하는 프로필을 선택하고 다음을 선택합니다.

    6. 이름 대화 상자에 이 규칙의 이름 및 설명을 입력한 다음 마침을 선택합니다.

    7. 인바운드 규칙 목록에서 방금 만든 규칙을 마우스 오른쪽 단추로 클릭한 다음 동작 창에서 속성 을 선택합니다.

    8. 프로토콜 및 포트 탭을 선택합니다.

    9. 프로토콜 종류: 상자에서는 TCP 를 선택하고 로컬 포트: 상자에서는 RPC 엔드포인트 매퍼 를 선택한 후에 적용, 확인을 차례로 선택합니다.

  • 도메인 정책에 따라 IPSec을 통해 네트워크 통신을 수행해야 하는 경우 UDP 포트 4500 및 UDP 포트 500을 여는 인바운드 규칙도 추가해야 합니다.

클라이언트의 방화벽 규칙

데이터베이스 엔진 쿼리 편집기를 실행하는 컴퓨터에서는 SQL Server 설치 프로그램이나 SQL Server Data Tools 설치 프로그램이 원격 디버깅을 허용하도록 Windows 방화벽을 구성했을 수 있습니다.

원격 디버깅 세션을 열려고 하는 동안 오류가 발생하면 다음과 같이 고급 보안이 포함된 Windows 방화벽 을 사용하여 방화벽 규칙을 구성함으로써 수동으로 프로그램 및 포트 예외를 구성할 수 있습니다.

  • 다음과 같이 svchost에 대한 프로그램 항목을 추가합니다.

    1. 고급 보안이 포함된 Windows 방화벽의 왼쪽 창에서 인바운드 규칙을 마우스 오른쪽 단추로 클릭한 다음 작업 창에서 새 규칙 을 선택합니다.

    2. 규칙 유형 대화 상자에서 프로그램을 선택하고 다음을 선택합니다.

    3. 프로그램 대화 상자에서 다음 프로그램 경로:를 선택하고 svchost.exe의 전체 경로를 입력합니다. 기본적으로 svchost.exe%systemroot%\System32\svchost.exe에 설치됩니다.

    4. 동작 대화 상자에서 연결 허용을 선택하고 다음을 선택합니다.

    5. 프로필 대화 상자에서 해당 인스턴스와 함께 디버깅 세션을 열 때의 컴퓨터 연결 환경을 설명하는 프로필을 선택하고 다음을 선택합니다.

    6. 이름 대화 상자에 이 규칙의 이름 및 설명을 입력한 다음 마침을 선택합니다.

    7. 인바운드 규칙 목록에서 방금 만든 규칙을 마우스 오른쪽 단추로 클릭한 다음 동작 창에서 속성 을 선택합니다.

    8. 프로토콜 및 포트 탭을 선택합니다.

    9. 프로토콜 종류: 상자에서는 TCP 를 선택하고 로컬 포트: 상자에서는 RPC 엔드포인트 매퍼 를 선택한 후에 적용, 확인을 차례로 선택합니다.

  • 데이터베이스 엔진 쿼리 편집기를 호스팅하는 애플리케이션에 대한 프로그램 항목을 추가합니다. 같은 컴퓨터에서 SQL Server Management Studio와 SQL Server Data Tools의 원격 디버깅 세션을 둘 다 열어야 하는 경우 둘 다에 대해 프로그램 규칙을 추가해야 합니다.

    1. 고급 보안이 포함된 Windows 방화벽의 왼쪽 창에서 인바운드 규칙을 마우스 오른쪽 단추로 클릭한 다음 작업 창에서 새 규칙 을 선택합니다.

    2. 규칙 유형 대화 상자에서 프로그램을 선택하고 다음을 선택합니다.

    3. 프로그램 대화 상자에서 다음 프로그램 경로: 를 선택하고 다음 세 값 중 하나를 입력합니다.

      • SQL Server Management Studio의 경우 ssms.exe의 전체 경로를 입력합니다. 기본적으로 ssms.exe는 C:\Program Files (x86)\Microsoft SQL Server\130\Tools\Binn\Management Studio에 설치됩니다.

      • SQL Server Data Tools 의 경우 devenv.exe의 전체 경로를 입력합니다.

        1. 기본적으로 Visual Studio 2010용 devenv.exe은(는) C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE에 있습니다.

        2. 기본적으로 Visual Studio 2012용 devenv.exe은(는) C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE에 있습니다.

        3. SQL Server Management Studio를 시작하는 데 사용하는 바로 가기에서 ssms.exe의 경로를 찾을 수 있습니다. SQL Server Data Tools를 시작하기 위해 사용하는 바로 가기에서 devenv.exe에 대한 경로를 찾을 수 있습니다. 바로 가기를 마우스 오른쪽 단추로 클릭하고 속성을 선택합니다. 실행 파일과 경로가 대상 상자에 나열됩니다.

    4. 동작 대화 상자에서 연결 허용을 선택하고 다음을 선택합니다.

    5. 프로필 대화 상자에서 해당 인스턴스와 함께 디버깅 세션을 열 때의 컴퓨터 연결 환경을 설명하는 프로필을 선택하고 다음을 선택합니다.

    6. 이름 대화 상자에 이 규칙의 이름 및 설명을 입력한 다음 마침을 선택합니다.

    7. 인바운드 규칙 목록에서 방금 만든 규칙을 마우스 오른쪽 단추로 클릭한 다음 동작 창에서 속성 을 선택합니다.

    8. 프로토콜 및 포트 탭을 선택합니다.

    9. 프로토콜 종류: 상자에서는 TCP 를 선택하고 로컬 포트: 상자에서는 RPC 동적 포트 를 선택한 후에 적용, 확인을 차례로 선택합니다.

디버거 시작을 위한 요구 사항

다음 요구 사항을 충족해야 Transact-SQL 디버거를 시작할 수 있습니다.

  • SQL Server Management Studio 또는 SQL Server Data Tools는 sysadmin 고정 서버 역할의 멤버인 Windows 계정으로 실행되고 있어야 합니다.

  • sysadmin 고정 서버 역할의 멤버인 Windows 인증 또는 데이터베이스 엔진 인증 로그인을 사용하여 SQL Server 쿼리 편집기 창을 연결해야 합니다.

  • 데이터베이스 엔진 쿼리 편집기 창을 데이터베이스 엔진 SP2(서비스 팩 2) 이상 버전의 SQL Server 2005(9.x) 인스턴스에 연결해야 합니다. 쿼리 편집기 창이 단일 사용자 모드에 있는 인스턴스에 연결되어 있는 경우에는 디버거를 실행할 수 없습니다.

  • 서버는 RPC를 통해 클라이언트와 다시 통신해야 합니다. SQL Server 서비스를 실행 중인 계정에 클라이언트에 대한 인증 권한이 있어야 합니다.

다음 단계