인터넷에서 SQL Server 복제를 위한 프록시 서버 구성

소개

복제는 데이터와 저장 프로시저를 기업 전체에 배포하는 데 사용되는 강력하고 중요한 기술입니다. Microsoft® SQL Server™의 복제 기능을 사용하면 데이터 복사본을 만들어 이를 다른 위치로 이동하고, 모든 복사본이 동일한 데이터 값을 갖도록 데이터를 자동으로 동기화할 수 있습니다. 복제 기능은 동일한 서버에 있는 데이터베이스 사이에서 사용할 수도 있고, LAN, WAN 또는 인터넷으로 연결된 서로 다른 서버 사이에서 사용할 수도 있습니다.

SQL Server와 Microsoft Proxy Server를 병합하여 데이터베이스 보안을 해치지 않고 인터넷 상에서 데이터를 복제할 수 있습니다. 인터넷을 통해 데이터를 복제하려면 네트워크 토폴로지를 구성하고, 보안 방법을 이해하고, 프록시 서버를 구성하고, SQL Server 7.0을 구성해야 합니다.

네트워크 토폴로지 구성

SQL Server와 프록시 서버를 함께 사용하도록 설정하려면 먼저 네트워크 토폴로지를 구성해야 합니다. 아래 그림과 같이 프록시 서버는 게시자로 확인된 SQL Server 7.0을 실행하는 내부 서버를 인터넷과 직접 연결합니다. SQL Server를 실행하는 내부 서버는 게시자인 동시에 배포자가 되도록 설정되어 있습니다. 보조 서버인 구독자는 SQL Server 7.0을 실행하며, 인터넷으로 액세스할 수 있는 끌어오기 구독자로 설정되어 있습니다.

프록시 서버의 소프트웨어 요구 사항은 아래와 같습니다.

  • Microsoft Windows NT® 4.0 서비스 팩 4
  • Windows NT 4.0 Option Pack
  • Microsoft Internet Information Service(IIS) 4.0
  • 프록시 서버 2.0

SQL Server를 실행하는 서버의 소프트웨어 요구 사항

  • Windows NT Server 4.0 서비스 팩 4
  • Microsoft Internet Explorer 4.01 서비스 팩 1
  • SQL Server 7.0

프록시 서버는 다중홈 서버로 구성되어 권한이 없는 인터넷 사용자가 내부 네트워크 리소스에 액세스할 수 없도록 합니다. 다중홈 서버는 동종 네트워크를 연결할 때 보안 수단을 제공하는 두 개의 네트워크 인터페이스 카드(NIC)로 구성됩니다. 첫째 NIC은 외부 프록시 인터페이스라고 하며, 인터넷 사용자와 내부 네트워크를 격리시킵니다. 내부 네트워크는 내부 프록시 인터페이스라고 하는 둘째 NIC를 통해 프록시 서버에 액세스합니다. 프록시 서버가 내부 사용자에게 사용 권한을 부여하면 내부 프록시 인터페이스와 외부 프록시 인터페이스가 서로 연결됩니다.

프록시 서버는 내부 네트워크 상의 어떤 사용자 또는 서비스가 연결을 완료할 것인지 혹은 프록시 서버의 포트로 바인드할 것인지 제어합니다. 이러한 연결이 이루어져야 서버나 사용자가 인터넷 상에서 내부 네트워크의 데이터나 리소스에 액세스할 수 있습니다.

인터넷 사용자는 외부 프록시 인터페이스를 사용하여 프록시 서버로 들어가서 포트에 연결한 뒤 프록시 서비스에 연결합니다. 프록시 서버의 포트에 연결한 뒤에는 파일 디렉터리 같이 사용 권한을 갖고 있는 프록시 서버의 서비스에만 액세스할 수 있습니다. 사용자는 내부 네트워크에 있는 서비스나 리소스에는 액세스할 수 없습니다.

내부 네트워크의 리소스는 필요한 사용 권한을 가진 내부 사용자나 서비스가 외부 프록시 인터페이스를 사용하여 포트에 연결한 후 사용할 수 있습니다. 프록시 서버는 바인딩 프로세스 과정에서 사용자를 인증하며, 그 사용자에게 사용 권한이 있으면 연결을 완료합니다.

이와 같이 특수한 인터넷 구성은 SQL Server의 기본 보안 속성에는 영향을 주지 않습니다. 내부 네트워크에 연결할 수 있는 권한을 가진 사용자는 SQL Server를 실행하는 서버의 데이터에 액세스할 수 있습니다. 그러나 인터넷 사용자가 SQL Server를 비롯한 모든 게시에 액세스하려면 먼저 IP 주소를 알아야 하고, 프록시 서버의 해당 포트에 연결한 다음 유효한 SQL Server 로그인 계정을 입력해야 합니다.

SQL Server를 실행하는 서버나 프록시 서버의 내부 서브넷에 대해서는 기본 게이트웨이를 지정하지 마십시오. 외부 인터페이스의 기본 게이트웨이는 각 라우터의 IP 주소를 가리키도록 해야 합니다.

보안 개요

보안과 관련된 고려 사항은 분산 응용 프로그램을 디자인하고 구현할 때 염두에 두어야 할 부분입니다.복제는 한 서버에서 변경된 사항을 네트워크 상의 다른 서버에 적용하므로 네트워크 보안 계층을 반드시 이해하고 있어야 합니다.

복제된 데이터에 대한 가용성을 일관성 있게 관리하지 않으면 이 데이터에 대한 액세스 권한을 관리하거나 제한하기가 훨씬 복잡해집니다. SQL Server 복제는 여러 가지 보안 메커니즘을 복합적으로 적용하여 응용 프로그램에서 데이터와 비즈니스 로직을 보호합니다.

보안 요구 사항을 적용하는 방법 중 하나는 이 요구 사항을 다른 액세스 계층으로 간주하는 것입니다. 각 하위 계층이 제대로 작동해야 그 아래 계층을 계속 추가할 수 있습니다. 각 계층의 동작은 바로 이전 상위 계층의 동작에 의존합니다. 구성할 보안 계층은 아래 세 가지입니다.

  • Windows NT 사용자 계정
  • 프록시 서버 보안
  • SQL Server 복제 계정 보안

위 그림에 표시된 세 서버는 복제하기 전에 연결시켜야 합니다. 먼저 게시자/배포자를 네트워크를 통해 프록시 서버에 연결합니다. 그런 다음 구독자가 SQL Server를 게시자/배포자에 연결한 뒤 프록시 서버의 FTP 서비스로 네트워크 연결을 해야 합니다.

Windows NT 게시자/배포자 계정

인터넷으로 데이터를 복제하려면 먼저 게시자/배포자와 프록시 서버를 네트워크로 연결합니다. SQL Server를 시작하면 MSSQLServer 서비스는 독자적으로 사용하도록 되어 있는 외부 프록시 인터페이스를 사용하여 포트에 바인드하는 데 필요한 권한을 프록시 서버에 요청합니다. 프록시 서버는 MSSQLServer 서비스 계정을 인증할 수 있는 권한을 갖고 있어야 하며, 올바른 동작에 필요한 사용자 계정 구성을 요구합니다.

보안 기능을 향상시키려면 게시자/배포자의 MSSQLServer 계정은 Windows NT에 로그온할 때 사용하는 계정과 달라야 합니다.

intrepl2

Windows NT 프록시 서버 계정

프록시 서버의 WinSock 서비스에 대한 사용 권한 목록에 게시자/배포자의 MSSQLServer 계정을 입력해야 합니다. 포트에 바인드할 권한을 요청할 때마다 MSSQLServer는 프록시 서버로 계정을 보내어 인증을 받습니다. 프록시 서버가 MSSQLServer 계정을 인증하고 포트를 바인드하면 게시자/배포자는 인터넷에 직접 연결됩니다.

구독자의 복제 에이전트는 프록시 서버의 FTP 서비스에 액세스하기 위해서 FTP 연결을 완료하기 전에 프록시 서버의 계정을 제시하여 인증을 받습니다. 이 계정은 아래와 같은 조건을 갖추고 있어야 합니다.

  • FTP 사이트 운영자 목록에 포함된 계정이어야 합니다.
  • 로컬로 로그온할 권한이 있어야 합니다.
  • 스냅샷 폴더에 대한 읽기 권한이 있어야 합니다.

새로운 구독이 이루어질 때마다 사용자 계정이 자동으로 만들어져서 Mssubscriptions_properties 테이블에 입력됩니다.

Windows NT 구독자 계정

연결 후 복제가 가능하도록 하려면 게시자/배포자 서버를 구독자에 등록해야 합니다. 달리 지정하지 않으면 복제 에이전트는 게시자/배포자를 등록할 때 사용한 계정 정보를 사용하여 연결합니다.

통합 보안에 대한 참고 사항: 게시자/배포자를 등록할 때 통합 계정을 사용하지 마십시오. 통합되지 않은 계정을 사용하는 경우에는 사용 권한이 부여된 게시에만 액세스할 수 있습니다.

다중홈 서버에서는 내부 프록시 인터페이스에서 외부 프록시 인터페이스로 내부 연결을 구성해야 모든 인터넷 사용자가 내부 네트워크에 있는 리소스에 액세스할 수 있습니다. 프록시 서버는 내부 사용자나 서비스를 모니터하며, 권한이 있는 사용자만 연결할 수 있도록 합니다.

앞에서 설명했듯이, 게시자/배포자의 MSSQLServer 서비스는 프록시 서버에 연결되며 SQL Server를 외부 프록시 인터페이스를 통해 동작하게 하는 포트로 바인드합니다. 포트 번호, 외부 프록시 인터페이스 IP 주소, 유효한 로그인 계정을 알고 있는 인터넷 사용자이면 누구나 SQL Server에 액세스할 수 있습니다.

복제 작업을 수행하려면 FTP 서비스에 액세스해야 합니다. FTP 서비스를 초기화할 필요가 있는 경우에는 구독자가 SQL Server에 로그인할 때 사용한 것과 동일한 계정을 사용합니다. 기본적으로 이 계정은 게시자/배포자 서버를 구독자에 등록할 때 사용하는 계정입니다. 그러나 끌어오기 구독을 작성하는 경우에는 MSsubscription_properties 테이블에 계정 이름과 암호를 입력하여 다른 계정을 지정할 수 있습니다. 어느 경우이든, 계정은 아래와 같은 조건을 갖추어야 합니다.

  • 권한이 있는 FTP 사이트 운영자이어야 합니다.
  • 로컬 로그온 기능이 있어야 합니다.
  • 프록시 서버의 스냅샷 폴더에 대한 읽기 권한이 있어야 합니다.

SQL Server의 기본 구성은 아래와 같습니다.

  • 프록시 서버 WinSock 서비스를 사용하여 포트 1433에 바인딩
  • 프록시 서버 Socks 프록시 서비스를 사용하여 FTP 서비스를 포트 21에 바인딩

어떤 복제 종류를 선택하든, 먼저 구독자에서 게시자로 ODBC 연결을 해야 합니다. 프록시 서버의 FTP 서비스로 연결이 필요하면 배포자는 구독자에게 이 사실을 알립니다. 배포자가 메시지를 보내면 구독자는 FTP 서비스로 연결하여 스냅샷 폴더에 있는 모든 데이터를 검색합니다.

끌어오기 구독의 경우에는 먼저 게시자/배포자 서버를 구독자에 등록해야 복제가 가능합니다. 등록 과정에서 게시자 서버의 게시 데이터베이스에 액세스하려면 게시자/배포자의 기존 사용자 이름과 암호를 입력해야 합니다. 게시자 서버를 구독자에 등록할 수 있으면 Windows NT 수준과 SQL Server 수준에서 네트워크 연결이 이루어진 것입니다. 게시자/배포자를 구독자에 등록할 수 없는 경우에는 각 계정에 대한 사용 권한 및 연결 상태를 확인하십시오.

게시자/배포자는 MSSQLServer 계정을 사용하여 WinSock 포트 1433 및 외부 프록시 인터페이스 경로를 바인드합니다. 게시자/배포자를 등록할 때 사용하는 계정이 게시자/배포자에 연결할 수 있는 권한을 갖고 있는지 확인합니다.

게시자/배포자 서버를 구독자에 등록할 때 사용되는 로그인 계정은 표준 SQL Server 로그인이어야 합니다. 보안을 강화하기 위해 이 계정에는 게시 데이터베이스 이외의 SQL Server에 대한 특수한 액세스 권한을 부여하지 않습니다. 게시 데이터베이스에 대한 액세스 권한을 게스트 단위로 부여할 수도 있고, 데이터베이스에 명시적으로 사용자를 추가하여 액세스 권한을 부여할 수도 있습니다. 이 계정은 구독자에게 구독 권한을 부여하고자 하는 각 대상 게시의 게시 액세스 목록(PAL)에도 포함되어 있어야 합니다.

보안 메커니즘의 마지막 단계는 모든 게시 데이터를 공개하기 전에 사용자 계정을 확인하는 것입니다. 한 번에 여러 사용자가 게시자에 액세스하는 경우, 게시자는 PAL을 사용하여 액세스를 제어할 수 있습니다. 복제 에이전트가 사용하는 로그인은 액세스를 시도한 각 게시의 해당 PAL과 대조된 후에 유효화됩니다. 구독자의 로그인이 PAL에 없으면 액세스가 거부됩니다. 다른 구독자에 대해 별도의 로그인을 사용하면 게시물에 포함된 데이터에 대한 액세스를 제한할 수 있습니다.

프록시 서버 구성

SQL Server는 복제된 데이터에 액세스할 때 ODBC와 FTP를 사용합니다. 이 두 서비스는 모두 인터넷 상에서 복제할 때 필요합니다. 프록시 서버를 올바로 구성해야 프록시 서버를 통해 구독자와 게시자/배포자를 ODBC로 연결할 수 있습니다. 복제를 구성하기 전에 구독자의 OSQL을 사용해서 외부 프록시 인터페이스의 데이터를 SQL Server로 전송하여 이 연결을 테스트한 다음 게시자/배포자에 연결할 수 있습니다. SQL Server의 데이터를 프록시 서버의 리디렉션된 스냅샷 폴더에 기록하는 방법으로 다음 테스트를 수행합니다. 이렇게 하려면 SQL 에이전트 사용자 계정을 사용하여 SQL Server에서 새 스냅샷 폴더로 파일을 복사하는 방법으로 게시자/배포자에 로그온합니다.

프록시 서버를 구성하는 방법은 아래와 같습니다.

  1. IP 전달 기능을 사용할 수 없게 합니다.
  2. FTP 서비스 환경을 설정합니다.
  3. WinSock 프록시 서비스 환경을 설정합니다.
  4. 프록시 서버 구성을 확인합니다.

인터넷에서는 데이터를 효율적으로 게시하고 수집(끌어오기/구독)할 수 있지만 그 과정에서 내부 네트워크와 데이터가 외부에 노출되어 보안 문제가 생길 수 있습니다. 네트워크를 보호하려면 인바운드 서비스 포트로 수신할 수 없도록 설정한 다음 IP 전달 기능을 사용할 수 없게 해야 합니다. IP 전달 기능을 사용할 수 없도록 설정하면 네트워크 작업에 지정된 IP 주소만 인터넷 사용자에게 나타나므로, 권한이 없는 사용자가 무단으로 사용하는 위험을 줄일 수 있습니다.

프록시 서버는 사용 가능한 IP 주소 범위를 제한합니다. IP 전달 기능을 사용하지 못하도록 설정하는 경우, 인터넷 사용자는 응용 프로그램 서비스 포트를 사용할 수 있어야만 연결을 초기화할 수 있습니다.

IP 전달 기능을 사용하지 못하도록 하려면

  1. 제어판에서 네트워크를 두 번 누릅니다.
  2. 프로토콜 탭을 누릅니다.
  3. TCP/IP를 선택한 다음 등록 정보를 누릅니다.
  4. Microsoft TCP/IP 등록 정보 대화 상자에서 라우팅을 누릅니다.
  5. IP 전달 사용 확인란이 취소되었는지 확인합니다.

일부 Windows NT 환경에서는 개인 네트워크에서 SQL Server가 위치하게 될 도메인과 단일 단방향 트러스트 관계를 가진 프록시 서버의 별도 도메인을 구성함으로써 보안 기능을 극대화할 수 있습니다. 구성 정보에 대한 자세한 내용은 Windows NT 설명서를 참조하십시오.

복제는 FTP를 사용하여 인터넷 상의 한 위치에 있는 초기 데이터와 스키마를 다른 위치로 전달합니다. 스냅샷 에이전트는 구독자의 병합 에이전트나 배포 에이전트가 검색한 스냅샷 폴더 데이터에 위치합니다.

SQL Server 복제는 인터넷으로 데이터를 전송할 때 프록시 서버의 FTP 디렉터리를 스냅샷 폴더로 사용합니다. 게시자/배포자로 ODBC 연결을 하면 먼저 스냅샷 폴더 경로가 나타나도록 설정되어 있습니다. 그러면 구독자의 배포 에이전트나 병합 에이전트는 프록시 서버로 FTP 연결을 한 뒤 스냅샷 폴더에 저장된 모든 정보를 검색합니다.

프록시 서버에 FTP 서비스를 구성하려면 FTP 홈 디렉터리를 게시자/배포자가 스냅샷 디렉터리로 사용할 로컬 드롭 위치로 설정합니다. 변경된 내용을 적용하려면 FTP 서비스를 종료했다가 다시 실행해야 합니다.

FTP 서비스를 구성하려면

  1. 시작 메뉴에서 프로그램, Microsoft Proxy Server를 차례로 가리킨 다음 Microsoft Management Console을 누릅니다.
  2. Internet Information Service를 확장한 다음 컴퓨터 이름을 확장합니다.
  3. Default FTP Site를 마우스 오른쪽 단추로 누릅니다.
  4. New를 가리킨 다음 Site를 눌러 새 FTP 사이트 마법사를 실행합니다.
  5. 필요에 따라 아래 정보를 입력합니다.
FTP 사이트 설명 FTP 복제 사이트
이 FTP 사이트에 사용할 IP 주소를 선택합니다. 이 사이트의 IP 주소를 입력합니다.
이 FTP 사이트가 사용할 TCP 포트 21
홈 디렉터리 경로를 입력합니다. 예를 들어, C:\repldata\ftp
이 홈 디렉터리에 설정하고자 하는 액세스 권한을 선택합니다. 읽기 권한을 설정합니다.

FTP 사이트 환경 설정을 끝내려면 기본 보안 설정을 변경합니다. 보안을 강화하려면 Anonymous Access나 게스트 계정 액세스를 해제합니다. 스냅샷 폴더에 대한 로컬 로그온 및 읽기 권한이 있는 사용자 계정(예: REPL2)은 유효한 FTP 사이트 운영자로 설정됩니다.

프록시 서버로 FTP 액세스를 제어하려면

  1. 시작 메뉴에서 프로그램, Microsoft Proxy Server를 차례로 가리킨 다음 Microsoft Management Console을 누릅니다.
  2. Internet Information Service를 확장한 다음 컴퓨터 이름을 확장합니다.
  3. 복제가 가능하도록 지정된 FTP 사이트를 마우스 오른쪽 단추로 누른 다음 등록 정보를 누릅니다.
  4. 사이트 이름 Properties 대화 상자에서 Security Accounts 탭을 누른 다음 Allow Anonymous Access 확인란의 선택을 취소합니다.
  5. FTP Site Operators에서 이 FTP 사이트에 대한 액세스 권한을 필요로 하는 사용자 계정에만 운영자 권한을 부여합니다.
  6. Internet Service Manager 대화 상자에서 Yes를 누른 다음 FTP Site 탭을 누릅니다.
  7. Connections에서 Limited To를 선택한 다음 최대 복제 연결 수를 지정합니다.
  8. Directory Security 탭의 By default, all computers will be: 상자에서 Denied Access를 누릅니다.
  9. 참고 여기에 입력한 IP 주소가 5단계에서 입력한 FTP 사이트 운영자 계정의 고정 IP 주소가 아닌 한, 5단계에서 입력한 모든 운영자 계정은 FTP 사이트 액세스가 가능합니다.

  10. Add를 누른 다음 이 서버와 통신할 모든 복제 서버의 IP 주소를 입력합니다.

패킷 필터링 기능을 사용하여 FTP 서비스 구성

패킷 필터링 기능으로 프록시 서버의 FTP를 사용하면 인터넷 쪽에서의 FTP 액세스가 완전히 차단됩니다. 프록시 서버를 실행하는 컴퓨터에서 FTP 같은 응용 프로그램을 실행할 때는 고정 필터에서 FTP를 사용할 수 있도록 구성해야 합니다. 패킷 필터에 대한 자세한 내용은 프록시 서버 설명서를 참조하십시오.

사용자 정의 필터나 미리 정의된 고정 필터를 추가하려면

  1. 시작 메뉴에서 프로그램, Microsoft Proxy Server를 차례로 가리킨 다음 Microsoft Management Console을 누릅니다.
  2. Internet Information Service를 확장한 다음 컴퓨터 이름을 확장합니다.
  3. 웹 프록시 서비스를 마우스 오른쪽 단추로 누른 다음 Properties를 누릅니다.
  4. Service 탭에서 Security를 누릅니다.
  5. Packet Filters 탭에서 Add를 누릅니다.
  6. Packet Filter Properties 대화 상자에서 Custom filter를 누릅니다.
  7. Protocol ID에서 프로토콜을 선택한 다음 Direction에서 방향을 선택합니다.
  8. Local port에서 해당 옵션을 누릅니다.
  9. 해당 Local host 옵션을 선택하여 내부 호스트(구독자) 컴퓨터와 패킷을 교환할 내부 컴퓨터를 지정합니다.
  10. Remote host에서 Single host를 누른 다음 IP 주소를 입력합니다. 이렇게 하면 특정 인터넷 호스트 컴퓨터와 패킷 교환이 가능합니다.

패킷 필터 예제

FTP Server IN(필터 2중 1)
프로토콜 = TCP
방향 = IN
로컬 포트 = 21
원격 포트 = 모두

FTP Server OUT(필터 2중 2)
프로토콜 = TCP
방향 = BOTH
로컬 포트 = 20
원격 포트 = 모두

구독자는 데이터를 전송하기 전에 WinSock 프록시 서비스를 사용하여 게시자/배포자에 ODBC 연결을 해야 합니다. WinSock 프록시 서비스를 사용할 경우 내부 사용자는 외부 인터페이스에서 내부 인터페이스로 연결해야 합니다.

WinSock 프록시 서비스를 사용하면, 내부 액세스 범위를 사용 가능한 포트로 제한하는 방법을 제공하는 프로토콜을 만들 수 있습니다. 또한 내부 사용자가 아웃바운드 연결을 할 수 있도록 할 것인지 또는 인바운드 연결 요청을 수신할 수 있도록 할 것인지 설정하는 것도 가능합니다.

특수한 상황에서는 특정 사용자에게 모든 WinSock 프록시 포트에 무제한으로 액세스하도록 할 수도 있습니다. 예를 들어, SQL Server는 사용자가 연결 요청을 하는 경우 연결 요청을 초기화하거나 허용한 다음 자체 보안 서비스를 사용하여 그 요청자를 인증할 수 있기 때문에 무제한적인 액세스 권한을 부여할 수 있는 것입니다.

조직은 SQL Server 사용 경험이 풍부한 사람이 SQL Server가 프록시 서버의 포트에 액세스하지 못하도록 하는 프로토콜을 만들어 WinSock 연결을 초기화하거나 완료하는 행위를 하지 못하도록 하기 위해 보다 강력한 보안 수단을 구현할 수 있습니다. 프로토콜을 사용하면 포트가 인바운드로 연결되도록 할 수 있습니다. 내부 사용자는 무단으로 아웃바운드 연결을 할 수 없습니다.

SQL Server에 대해 WinSock 프록시 프로토콜 정의를 구성하려면

  1. 시작 메뉴에서 프로그램, Microsoft Proxy Server를 차례로 가리킨 다음 Microsoft Management Console을 누릅니다.
  2. Internet Information Service를 확장한 다음 프록시 서버를 실행하는 서버를 확장합니다.
  3. WinSock 프록시 서비스를 마우스 오른쪽 단추로 누른 다음 Properties를 누릅니다.
  4. WinSock Proxy Service Properties For 컴퓨터 이름 대화 상자에서 Protocols를 누른 다음 추가를 누릅니다.
  5. 프로토콜 이름 텍스트 상자에 복제 배포자를 실행할 서버 이름을 입력합니다.
  6. 참고 프로토콜 이름은 사용하는 응용 프로그램과 관계 없이 정할 수 있습니다. 프로토콜 이름은 액세스 권한을 부여할 소켓과 계정이나 서버를 구분하는 데 도움이 될 정도로 간단하게 만드는 것이 좋습니다.

  7. Initial Connection에서 Port 상자에 1433이라고 입력합니다.
  8. Type에서 TCP를 선택한 다음 Direction에서 Inbound를 선택합니다.

프로토콜에 대한 WinSock 프록시 서비스 권한을 구성하려면

  1. 시작 메뉴에서 프로그램, Microsoft Proxy Server를 차례로 가리킨 다음 Microsoft Management Console을 누릅니다.
  2. Internet Information Service를 확장한 다음 컴퓨터 이름을 확장합니다.
  3. WinSock 프록시 서비스를 마우스 오른쪽 단추로 누른 다음 Properties를 누릅니다.
  4. WinSock Proxy Service Properties For 컴퓨터 이름 대화 상자에서 Permissions 탭을 누릅니다.
  5. 프로토콜 목록에서 프로토콜 정의를 구성할 때 정의한 프로토콜 이름을 선택합니다.
  6. Edit를 누른 다음 프로토콜 이름 Permissions 대화 상자에서 Add를 누릅니다.
  7. Add Users Groups 대화 상자에서 복제 서버에 액세스 권한을 제공할 사용자 계정을 선택합니다.
  8. 이 계정은 게시자/배포자에서 MSSQLServer를 시작할 때 사용하는 사용자 계정과 같습니다.

WinSock 프록시 서비스에 대한 무제한 액세스 권한을 구성하려면

  1. 시작 메뉴에서 프로그램, Microsoft Proxy Server를 차례로 가리킨 다음 Microsoft Management Console을 누릅니다.
  2. Internet Information Service를 확장한 다음 컴퓨터 이름을 확장합니다.
  3. WinSock 프록시 서비스를 마우스 오른쪽 단추로 누른 다음 Properties를 누릅니다.
  4. WinSock Proxy Service Properties For 컴퓨터 이름 대화 상자에서 Permissions 탭을 누릅니다.
  5. 프로토콜 목록에서 Unlimited Access를 선택합니다.
  6. Edit를 누른 다음 프로토콜 이름 Permissions 대화 상자에서 Add를 누릅니다.
  7. Add Users Groups 대화 상자에서 복제 서버에 액세스 권한을 제공할 사용자 계정을 선택합니다.
  8. 이 계정은 게시자/배포자에서 MSSQLServer를 시작할 때 사용하는 사용자 계정와 같습니다.

서버를 모두 구성했으면 시험적으로 서버에 연결한 뒤 OSQL로 쿼리를 수행하여 데이터를 전송해 보는 것이 좋습니다. 서버에 연결할 수 없는 경우에는 복제가 제대로 이루어지지 않습니다.

게시자/배포자 구성

인터넷으로 기사를 게시하려면 게시자/배포자가 TCP/IP 또는 멀티프로토콜 네트워크 프로토콜로 수신할 수 있어야 합니다. SQL Server는 TCP/IP의 TCP/IP 소켓이나 멀티프로토콜 네트워크 라이브러리를 사용하여 게시자/배포자와 구독자 간의 초기 ODBC 연결을 수행합니다. TCP/IP 소켓 네트워크 라이브러리는 SQL Server를 설치하면서 사용할 수 있도록 기본 설정되어 있지만, 사용자 정의 설치를 하는 경우에는 사용할 수 없습니다.

인터넷 복제 환경을 설정하려면 주요 매개 변수를 게시자/배포자와 구독자에 모두 설정해야 합니다. 프록시 서버에서 WinSock 프록시 서비스와 FTP 서비스가 상호 동작하도록 SQL Server를 구성해야 합니다. SQL Server 복제 환경을 설정하는 방법은 아래와 같습니다.

  1. 게시자/배포자가 프록시 서버와 상호 동작하도록 설정합니다.
  2. 게시자/배포자를 구독자에 등록합니다.
  3. 구독자가 인터넷에 연결할 수 있도록 구성합니다.
  4. SQL Server가 프록시 서버와 제대로 작동하는지 확인합니다.

프록시 서버에 프록시 서버 서비스를 설치한 뒤에는 게시자/배포자를 프록시 클라이언트로 설정해야 합니다. 이렇게 하려면 SQL Server를 WinSock 포트로 바인드하여 인터넷과 통신할 수 있도록 해야 합니다.

데이터 통신을 위한 WinSock 포트 바인딩

SQL Server를 프록시 서버와 함께 사용할 수 있도록 구성하려면 SQL Server를 실행하는 서버의 \Mssql7\Binn 폴더에 있는 Wspcfg.ini 파일을 변경해야 합니다. 이 파일이 없으면 메모장을 사용하여 이 파일을 만듭니다. 이 파일에는 아래 항목들을 포함시켜야 합니다.

[sqlservr]
ServerBindTcpPorts=1433
Persistent=1
KillOldSession=1

SQL Server는 프록시 서버 서비스 포트 1433의 연결 요청을 수신합니다. MSSQLServer 계정에 액세스 제한 없음 권한을 부여하면 모든 사용자, 서비스 또는 익명 구독자는 SQL Server에서 인증을 요청할 수 있습니다. 특정 IP 주소나 인바운드 요청에 대해서만 연결을 허용하는 프록시 서버의 포트 1433에 대해 프로토콜을 구성할 수 있습니다.

SQL Server를 프록시 클라이언트로 구성

프록시 서버를 실행하는 서버가 설치되면 C:\Msp\Clients 디렉터리를 의미하는 공유 이름 mspclnt가 생성됩니다. SQL Server를 프록시 클라이언트로 설정하려면 이 공유 디렉터리에 연결하여 프록시 클라이언트 구성 유틸리티(mpclnt)를 실행해야 합니다. 설정이 끝나면 SQL Server는 프록시 서버의 내부 클라이언트가 됩니다.

프록시 클라이언트 구성 유틸리티를 실행하려면

  1. SQL Server를 실행하는 서버에서 시작을 누른 다음 실행을 누릅니다.
  2. 열기에서\\서버 이름\mspclnt를 입력한 다음 프록시 서버 클라이언트 설치 프로그램을 실행합니다.
  3. 설치가 끝나면 SQL Server를 실행하는 서버를 다시 실행하여 변경 내용을 적용합니다.

FTP 서비스의 스냅샷 폴더 리디렉션

SQL Server는 프록시 서버의 FTP 홈 디렉터리 위치를 알고 있어야 합니다. \Mssql7\Repldata\Ftp로 기본 설정되어 있는 스냅샷 폴더는 프록시 서버의 FTP 홈 디렉터리로 리디렉션되어 구독자로 데이터를 전송할 수 있도록 합니다. 새로운 스냅샷 폴더는 FTP 서비스 환경을 설정하는 과정에서 설정할 수 있습니다.

FTP 홈 디렉터리를 설정하려면

  1. 시작 메뉴에서 프로그램, Microsoft SQL Server 7.0을 차례로 가리킨 다음 Enterprise Manager를 누릅니다.
  2. SQL Server Group을 확장한 다음 게시 서버를 누릅니다.
  3. Tools 메뉴에서 Wizards를 누릅니다.
  4. Select Wizard 대화 상자에서 Replication을 확장합니다.
  5. Configure Publishing and Distribution Wizard를 누릅니다.
  6. Publishers 탭에서 파일을 배치할 스냅샷 폴더가 들어 있는 게시 서버를 두 번 누릅니다.
  7. UNC 경로 이름 \\프록시 서버 이름\Repldata\ftp를 입력한 다음 By impersonating the SQL Server Agent Account on PublishingServername (Trusted connection)을 누릅니다.

게시자/배포자 네트워크 유틸리티 구성

게시자/배포자가 프록시 서버로 들어오는 연결 요청을 수신하도록 하려면 SQL Server 네트워크 유틸리티에서 아래 항목을 확인합니다.

  • TCP/IP 네트워크 라이브러리
  • 포트 1433
  • 프록시 서버의 외부 인터페이스 IP 주소

SQL Server 네트워크 유틸리티를 이렇게 구성하면 로컬 도메인 사용자는 TCP/IP를 사용하여 SQL Server에 액세스할 수 없게 됩니다. 로컬 사용자에게 액세스 권한을 제공하려면 명명된 파이프 같은 추가 네트워크 라이브러리를 적어도 하나 이상 구성해야 합니다.

게시자/배포자가 연결 요청을 수신할 수 있도록 하려면

  1. 시작 메뉴에서 프로그램, Microsoft SQL Server 7.0을 차례로 누른 다음 Server Network Utility를 누릅니다.
  2. SQL Server Network Utility 대화 상자의 General 탭에서 Add를 누릅니다.
  3. Network Libraries에서 TCP/IP를 누릅니다. Connection Parameters에서 포트 번호 1433을 입력합니다. Proxy Address에서 외부 프록시 서버 인터페이스의 IP 주소를 입력합니다.
  4. OK를 눌러 변경을 완료합니다.

인터넷에 연결할 수 있도록 구독자 구성

구독자가 게시자/배포자에 연결할 수 있도록 하려면 아래와 같은 구성이 필요합니다.

  1. 구독자가 게시자/배포자의 클라이언트가 되도록 구성합니다. 복제 에이전트가 인터넷을 통해 연결을 확인할 수 있도록 TCP/IP 주소에 알아보기 쉬운 이름을 매핑합니다.
  2. 끌어오기 구독을 만들 때 게시자와 FTP 서비스에 대한 액세스 권한을 지정합니다.

구독자는 통신 연결을 설정할 때 사용한 네트워크 프로토콜과 게시자가 수신할 WinSock 프록시 포트를 알고 있어야 합니다.

SQL Server에 대한 액세스 제어를 설정하려면

  1. 시작 메뉴에서 프로그램, Microsoft SQL Server 7.0을 차례로 누른 다음 Client Network Utility를 누릅니다.
  2. >SQL Server Client Network Utility 대화 상자의 General 탭에서 TCP/IP를 누릅니다.
  3. Add를 누른 다음 Server alias에 WinSock 프록시 서비스 용으로 지정한 프로토콜 이름을 입력합니다.
  4. 참고 프로토콜을 사용하지 않을 경우에는 WinSock 프록시에 작성한 프로토콜 이름과 서버 별칭 이름이 달라도 됩니다.

  5. Network libraries에서 TCP/IP가 선택된 상태인지 확인합니다.
  6. Connection parameters에 포트 1433이 나타나는지 확인합니다.

구독자가 프록시 서버를 사용하는 게시자의 정보에 액세스할 수 있도록 하려면, 게시자의 주소를 확인하는 데 도움이 되는 정보를 사용하여 끌어오기 구독을 구성합니다.

참고 구독자가 인터넷을 통해 게시를 구독하도록 하려면 게시자에 있는 게시는 Snapshots to be downloaded using FTP를 사용할 수 있어야 합니다.

끌어오기 구독을 구성하려면

  1. SQL Server 엔터프라이즈 관리자에서 구독 서버를 누릅니다.
  2. Tools 메뉴에서 Replication을 가리킨 다음 Pull Subscriptions to 구독 서버 이름을 누릅니다.
  3. Pull New Subscription을 누릅니다. 끌어오기 구독 마법사가 시작됩니다.
  4. Choose Publication 화면이 나타나면 게시 서버를 누릅니다. 게시 서버가 목록에 나타나지 않으면 Register Server를 누른 다음 게시자를 등록합니다.
  5. Specify Synchronization Agent Login에서, 구독할 게시의 PAL에 지정된 보안 설정값 및 기존 설정값을 가진 계정을 입력합니다.
  6. Choose Destination Database에서 기존 데이터베이스를 선택하거나 New Database를 눌러 새 구독 데이터베이스를 구성합니다.
  7. Initialize Subscription에서 Yes, initialize schema and data at the Subscriber를 선택합니다.
  8. Snapshot Delivery 옵션이 나타나면 Yes, use FTP to copy the Snapshot files를 선택합니다.
  9. Set Distribution Agent Schedule에서 적절한 일정을 선택합니다.
  10. Allow Anonymous Subscriptions에서 Yes, make the Subscriptions anonymous를 선택합니다.
  11. 마법사의 나머지 단계를 계속 수행한 다음 Finish를 누릅니다.
  12. Pull Subscriptions to 구독 서버 이름 대화 상자가 나타나면 Properties를 누릅니다.
  13. Pull Subscription Properties - PublisherName:databasename:replicationtype 대화 상자가 나타나면 Snapshot Delivery를 누릅니다.
  14. Use File Transfer Protocol(FTP) 확인란이 선택되어 있는지 확인합니다.
  15. Server address of the DistributorFTP parameters에 게시자와 연결할 때 사용되는 프록시 서버에서 인터넷과 연결되는 NIC 카드의 IP 주소를 입력합니다.
  16. Port에 게시자의 프록시 서버 연결을 위한 FTP 포트 번호(일반적으로 포트 21)를 입력합니다.
  17. Login에 적절한 보안 승인으로 구성된 계정을 입력합니다.
  18. Password에 이 계정을 구성할 때 사용한 암호를 입력합니다.
  19. OK를 누른 다음 Close를 누릅니다.

구독자에 게시자/배포자를 등록하면, 프록시 서버를 통해서 SQL Server를 실행하는 서버에 구독자를 연결할 수 있습니다. 또한 게시자/배포자 이름을 IP 주소로 매핑함으로써 복제 에이전트가 인터넷으로 연결할 수 있도록 합니다. 보안을 강화하려면 표준 SQL 로그인 계정을 사용하여 게시자/배포자를 등록합니다.

게시자/배포자를 구독자에 등록하려면

  1. SQL Server 엔터프라이즈 관리자에서 SQL Server Group을 마우스 오른쪽 단추로 누른 다음 New SQL Server Registration을 누릅니다.
  2. SQL Server 등록 마법사가 요구하는 아래 정보를 입력합니다.
  3. SQL Server 선택 게시자/배포자 이름을 입력합니다.
    인증 모드 선택 SQL Server 로그인을 선택합니다.
    연결 옵션 선택 게시자/배포자가 사용할 수 있는 이름과 암호를 입력합니다.
    SQL Server 그룹 선택 자신의 조직에 맞는 옵션을 선택합니다.

참고 게시자/배포자를 등록할 때 사용되는 SQL 로그인 계정은 구독을 만들 때도 기본적으로 사용되는 계정입니다. 이 계정은 복제 에이전트가 SQL Server에 로그온하고, 게시에 대한 액세스를 요청하고, 프록시 서버의 FTP 서비스에 액세스할 때 사용합니다. 구독 작성 중이나 작성 후에 기본값을 무시하고 유효한 게시자/배포자 로그온 이름과 암호를 지정할 수 있습니다.

포트 1433을 통해 프록시 서버로 연결되었는지 확인하려면 프록시 서버의 WinSock 프록시 서비스를 확인합니다. 게시자/배포자가 실행되고 있는 사용자 계정의 프록시 서버에서 세션을 확인하면 됩니다.

사용자 계정이 즉시 나타나지 않을 수도 있습니다. SQL Server에서 잠시 기다렸다가 주기적으로 Refresh를 누릅니다. SQL Server 에이전트 계정이 목록에 나타나지 않으면 SQL Server를 종료했다가 다시 실행합니다. SQL Server가 프록시 서버의 클라이언트가 되면서 SQL Server를 실행하도록 설정한 서비스 계정이 목록에 나타납니다.

참고 컴퓨터 계정은 사용할 수 없으므로 정식 이름을 사용해야 합니다.

연결을 확인하려면

  1. 시작 메뉴에서 프로그램, Microsoft Proxy Server를 차례로 가리킨 다음 Microsoft Management Console을 누릅니다.
  2. Internet Information Service를 확장한 다음 프록시 서버를 실행하는 서버를 확장합니다.
  3. WinSock Proxy Service를 누른 다음 Properties를 누릅니다.
  4. Services 탭에서 Current Sessions를 누릅니다.
  5. WinSock Proxy service를 누릅니다.

또는 어느 컴퓨터에서든 netstat 명령을 사용하여 IP 연결 및 포트 정보를 확인할 수도 있습니다. 다음은 게시자/배포자로 SQL Server를 실행하는 서버에서 netstat – a 명령을 사용하여 출력된 결과입니다. 이 목록에는 클라이언트측 연결과 서버측 연결 그리고 그 연결 상태 및 포트 번호가 포함되어 있습니다. 클라이언트 세션에 옵션을 지정하지 않고 netstat만 사용합니다. 포트 1433과 21만 나타내려면 netstat –an을 사용하여 TCP/IP 연결만 표시합니다.

1433 이외의 여러 포트가 나열되지만, 포트 1433은 들어오는 포트로 구성되어 있습니다. 나가는 포트는 동적이므로, 프록시 서버는 연결이 이루어질 때 이 포트를 할당합니다. 동적 포트 범위는 1025부터 5000까지입니다.

Active Connections

Proto Local Address Foreign Address State
TCP SQLReplServer:1026 0.0.0.0:0 LISTENING
TCP SQLReplServer:1031 0.0.0.0:0 LISTENING
TCP SQLReplServer:1033 0.0.0.0:0 LISTENING
TCP SQLReplServer:ftp 0.0.0.0:0 LISTENING
TCP SQLReplServer:1058 0.0.0.0:0 LISTENING
TCP SQLReplServer:1059 0.0.0.0:0 LISTENING
TCP SQLReplServer:135 0.0.0.0:0 LISTENING
TCP SQLReplServer:135 0.0.0.0:0 LISTENING
TCP SQLReplServer:1433 0.0.0.0:0 LISTENING
TCP SQLReplServer:1025 0.0.0.0:0 LISTENING
TCP SQLReplServer:1025 localhost:1026 ESTABLISHED
TCP SQLReplServer:1026 localhost:1025 ESTABLISHED
TCP SQLReplServer:1029 0.0.0.0:0 LISTENING
TCP SQLReplServer:1030 0.0.0.0:0 LISTENING
TCP SQLReplServer:1032 0.0.0.0:0 LISTENING
TCP SQLReplServer:1056 0.0.0.0:0 LISTENING
TCP SQLReplServer:1057 0.0.0.0:0 LISTENING
TCP SQLReplServer:137 0.0.0.0:0 LISTENING
TCP SQLReplServer:138 0.0.0.0:0 LISTENING
TCP SQLReplServer:nbsession 0.0.0.0:0 LISTENING
UDP SQLReplServer:1059 *:*
UDP SQLReplServer:1088 *:*
UDP SQLReplServer:135 *:*
UDP SQLReplServer:nbname *:*
UDP SQLReplServer:nbdatagram *:*

이 문서에 포함된 정보는 게시일 현재 논의중인 문제에 대한 Microsoft Corporation의 현재 입장을 대변하는 것입니다. Microsoft는 변화하는 시장 조건에 부응해야 하므로, 이 문서는 Microsoft의 공식적인 약속으로 해석되어서는 안되며 Microsoft는 게시일 이후 제시되는 어떠한 정보에 대해서도 정확성을 보장하지 않습니다.

이 백서는 정보 제공 목적으로만 사용됩니다. 마이크로소프트는 이 문서에 대해 명시적이거나 묵시적인 어떠한 보증도 하지 않습니다.

© 1999 Microsoft Corporation.All rights reserved.

Microsoft와 Windows NT는 미국, 대한민국, 및/또는 기타국가에서의 Microsoft Corporation의 등록 상표 또는 상표입니다.

여기에 언급된 다른 등록 상표 및 상표 이름은 각각 그 소유자의 상표일 수 있습니다.

부품 번호: 098-83898