Transact-SQL 디버거를 실행하기 전에 방화벽 규칙 구성
적용 대상: SQL Server
Transact-SQL 쿼리 편집기와 다른 컴퓨터에서 실행 중인 데이터베이스 엔진 인스턴스에 연결된 경우 데이터베이스 엔진 디버깅을 사용하도록 Windows 방화벽 규칙을 구성해야 합니다.
Transact-SQL 디버거 구성
Transact-SQL 디버거는 서버 쪽 구성 요소와 클라이언트 쪽 구성 요소를 모두 포함합니다. 서버 쪽 디버거 구성 요소는 SQL Server 데이터베이스 엔진의 각 인스턴스와 함께 설치됩니다. 클라이언트 쪽 디버거 구성 요소는 다음과 같은 경우에 설치됩니다.
Microsoft Visual Studio 2019 이상 버전을 설치할 때
웹 다운로드에서 SSDT(SQL Server Data Tools)를 설치할 때
SQL Server Data Tools가 SQL Server 데이터베이스 엔진 인스턴스와 같은 컴퓨터에서 실행 중인 경우, Transact-SQL 디버거를 실행하기 위한 구성 요구 사항이 없습니다. 그러나 데이터베이스 엔진의 원격 인스턴스에 연결된 경우 Transact-SQL 디버거를 실행하려면 두 컴퓨터 모두에서 Windows 방화벽의 프로그램 및 포트 규칙을 사용하도록 설정해야 합니다. 원격 디버거 세션을 열려고 하는 동안 오류가 발생하면 다음 방화벽 규칙이 컴퓨터에 정의되어 있는지 확인합니다.
고급 보안이 포함된 Windows 방화벽 애플리케이션을 사용하여 방화벽 규칙을 관리합니다. Windows 7 및 Windows Server 2008 R2에서 제어판, Windows 방화벽을 차례로 열고 고급 설정을 선택합니다. Windows Server 2008 R2에서는 서비스 관리자를 열고 왼쪽 창에서 구성을 확장한 다음 고급 보안이 포함된 Windows 방화벽을 확장할 수도 있습니다.
주의
Windows 방화벽의 사용 설정 규칙 때문에 방화벽이 차단하게 되어 있는 보안 위협에 컴퓨터가 노출될 수 있습니다. 원격 디버깅에 대한 규칙을 사용하도록 설정하면 이 항목에 나열된 포트와 프로그램이 차단됩니다.
서버의 방화벽 규칙
데이터베이스 엔진인스턴스를 실행하는 컴퓨터에서 고급 보안이 포함된 Windows 방화벽 을 사용하여 다음 정보를 지정합니다.
sqlservr.exe
에 대한 인바운드 프로그램 규칙을 추가합니다. 원격 디버깅 세션을 지원해야 하는 인스턴스당 하나의 규칙이 있어야 합니다.고급 보안이 포함된 Windows 방화벽의 왼쪽 창에서 인바운드 규칙을 마우스 오른쪽 단추로 클릭한 다음 작업 창에서 새 규칙 을 선택합니다.
규칙 유형 대화 상자에서 프로그램을 선택하고 다음을 선택합니다.
프로그램 대화 상자에서 다음 프로그램 경로:를 선택하고 이 인스턴스에 대한
sqlservr.exe
의 전체 경로를 입력합니다. 기본적으로sqlservr.exe
은(는)C:\Program Files\Microsoft SQL Server\MSSQL16.<InstanceName>\MSSQL\Binn
에 설치되며, 여기서<InstanceName>
은(는) 기본 인스턴스의 경우MSSQLSERVER
(이)고 명명된 인스턴스의 경우 인스턴스 이름입니다.작업 대화 상자에서 연결 허용을 선택하고 다음을 선택합니다.
프로필 대화 상자에서 해당 인스턴스와 함께 디버깅 세션을 열 때의 컴퓨터 연결 환경을 설명하는 프로필을 선택하고 다음을 선택합니다.
이름 대화 상자에 이 규칙의 이름 및 설명을 입력한 다음 마침을 선택합니다.
인바운드 규칙 목록에서 방금 만든 규칙을 마우스 오른쪽 단추로 클릭한 다음 동작 창에서 속성 을 선택합니다.
프로토콜 및 포트 탭을 선택합니다.
프로토콜 종류: 상자에서는 TCP 를 선택하고 로컬 포트: 상자에서는 RPC 동적 포트 를 선택한 후에 적용, 확인을 차례로 선택합니다.
svchost.exe
에 대한 인바운드 프로그램 규칙을 추가하여 원격 디버거 세션에서 DCOM(Distributed Component Object Model) 통신을 사용 설정합니다.고급 보안이 포함된 Windows 방화벽의 왼쪽 창에서 인바운드 규칙을 마우스 오른쪽 단추로 클릭한 다음 작업 창에서 새 규칙 을 선택합니다.
규칙 유형 대화 상자에서 프로그램을 선택하고 다음을 선택합니다.
프로그램 대화 상자에서 다음 프로그램 경로:를 선택하고
svchost.exe
의 전체 경로를 입력합니다. 기본적으로svchost.exe
는%systemroot%\System32\svchost.exe
에 설치됩니다.동작 대화 상자에서 연결 허용을 선택하고 다음을 선택합니다.
프로필 대화 상자에서 해당 인스턴스와 함께 디버깅 세션을 열 때의 컴퓨터 연결 환경을 설명하는 프로필을 선택하고 다음을 선택합니다.
이름 대화 상자에 이 규칙의 이름 및 설명을 입력한 다음 마침을 선택합니다.
인바운드 규칙 목록에서 방금 만든 규칙을 마우스 오른쪽 단추로 클릭한 다음 동작 창에서 속성 을 선택합니다.
프로토콜 및 포트 탭을 선택합니다.
프로토콜 종류: 상자에서는 TCP 를 선택하고 로컬 포트: 상자에서는 RPC 엔드포인트 매퍼 를 선택한 후에 적용, 확인을 차례로 선택합니다.
도메인 정책에 따라 IPSec을 통해 네트워크 통신을 수행해야 하는 경우 UDP 포트 4500 및 UDP 포트 500을 여는 인바운드 규칙도 추가해야 합니다.
클라이언트의 방화벽 규칙
데이터베이스 엔진 쿼리 편집기를 실행하는 컴퓨터에서, Windows 방화벽이 원격 디버깅을 허용하도록 구성합니다.
원격 디버깅 세션을 열려고 하는 동안 오류가 발생하면 다음과 같이 고급 보안이 포함된 Windows 방화벽 을 사용하여 방화벽 규칙을 구성함으로써 수동으로 프로그램 및 포트 예외를 구성할 수 있습니다.
다음과 같이 svchost에 대한 프로그램 항목을 추가합니다.
고급 보안이 포함된 Windows 방화벽의 왼쪽 창에서 인바운드 규칙을 마우스 오른쪽 단추로 클릭한 다음 작업 창에서 새 규칙 을 선택합니다.
규칙 유형 대화 상자에서 프로그램을 선택하고 다음을 선택합니다.
프로그램 대화 상자에서 다음 프로그램 경로:를 선택하고
svchost.exe
의 전체 경로를 입력합니다. 기본적으로svchost.exe
는%systemroot%\System32\svchost.exe
에 설치됩니다.동작 대화 상자에서 연결 허용을 선택하고 다음을 선택합니다.
프로필 대화 상자에서 해당 인스턴스와 함께 디버깅 세션을 열 때의 컴퓨터 연결 환경을 설명하는 프로필을 선택하고 다음을 선택합니다.
이름 대화 상자에 이 규칙의 이름 및 설명을 입력한 다음 마침을 선택합니다.
인바운드 규칙 목록에서 방금 만든 규칙을 마우스 오른쪽 단추로 클릭한 다음 동작 창에서 속성 을 선택합니다.
프로토콜 및 포트 탭을 선택합니다.
프로토콜 종류: 상자에서는 TCP 를 선택하고 로컬 포트: 상자에서는 RPC 엔드포인트 매퍼 를 선택한 후에 적용, 확인을 차례로 선택합니다.
SQL Server Data Tools 데이터베이스 엔진 쿼리 편집기를 호스팅하는 애플리케이션에 대한 프로그램 항목을 추가합니다. SQL Server Data Tools 여러 설치의 원격 디버깅 세션을 같은 컴퓨터에서 한꺼번에 열어야 하는 경우, 둘 모두에 대한 프로그램 규칙을 추가해야 합니다.
고급 보안이 포함된 Windows 방화벽의 왼쪽 창에서 인바운드 규칙을 마우스 오른쪽 단추로 클릭한 다음 작업 창에서 새 규칙 을 선택합니다.
규칙 유형 대화 상자에서 프로그램을 선택하고 다음을 선택합니다.
프로그램 대화 상자에서 다음 프로그램 경로: 를 선택하고 다음 세 값 중 하나를 입력합니다.
SQL Server Data Tools 의 경우
devenv.exe
의 전체 경로를 입력합니다.기본적으로 Visual Studio 2022용
devenv.exe
은(는)C:\Program Files\Microsoft Visual Studio\2022\Community\Common7\IDE
에 있습니다.기본적으로 Visual Studio 2019용
devenv.exe
은(는)C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\Common7\IDE
에 있습니다.SQL Server Data Tools를 시작하기 위해 사용하는 바로 가기에서
devenv.exe
에 대한 경로를 찾을 수 있습니다. 바로 가기를 마우스 오른쪽 단추로 클릭하고 속성을 선택합니다. 실행 파일과 경로가 대상 상자에 나열됩니다.
동작 대화 상자에서 연결 허용을 선택하고 다음을 선택합니다.
프로필 대화 상자에서 해당 인스턴스와 함께 디버깅 세션을 열 때의 컴퓨터 연결 환경을 설명하는 프로필을 선택하고 다음을 선택합니다.
이름 대화 상자에 이 규칙의 이름 및 설명을 입력한 다음 마침을 선택합니다.
인바운드 규칙 목록에서 방금 만든 규칙을 마우스 오른쪽 단추로 클릭한 다음 동작 창에서 속성 을 선택합니다.
프로토콜 및 포트 탭을 선택합니다.
프로토콜 종류: 상자에서는 TCP 를 선택하고 로컬 포트: 상자에서는 RPC 동적 포트 를 선택한 후에 적용, 확인을 차례로 선택합니다.
디버거 시작을 위한 요구 사항
다음 요구 사항을 충족해야 Transact-SQL 디버거를 시작할 수 있습니다.
SQL Server 데이터 도구는 sysadmin 고정 서버 역할의 구성원인 Windows 계정 아래에서 실행되어야 합니다.
sysadmin 고정 서버 역할의 멤버인 Windows 인증 또는 데이터베이스 엔진 인증 로그인을 사용하여 SQL Server 쿼리 편집기 창을 연결해야 합니다.
데이터베이스 엔진 쿼리 편집기 창이 SQL Server 데이터베이스 엔진 인스턴스에 연결되어 있어야 합니다. 쿼리 편집기 창이 단일 사용자 모드에 있는 인스턴스에 연결되어 있는 경우에는 디버거를 실행할 수 없습니다.
서버는 RPC를 통해 클라이언트와 다시 통신해야 합니다. SQL Server 서비스를 실행 중인 계정에 클라이언트에 대한 인증 권한이 있어야 합니다.