SQL Server 로그 전달 보안을 구성하는 방법

기술 자료 번역 기술 자료 번역
기술 자료: 321247 - 이 문서가 적용되는 제품 보기.
이 문서는 이전에 다음 ID로 출판되었음: KR321247
모두 확대 | 모두 축소

이 페이지에서

요약

이 문서에서는 로그 전달 보안을 구성하는 방법을 설명합니다. SQL Server 로그 전달 보안을 구성할 때는 SQL Server 시작 계정에서 트랜잭션 로그 백업이 있는 네트워크 공유에 대한 공유 권한에 이르기까지 다양한 문제를 고려해야 하는데, 이 문서에서는 바로 이러한 문제를 설명합니다.

로그 전달 서버의 SQL Server 및 SQL Server Agent 서비스 시작 계정

도메인 계정

SQL Server가 도메인에 속한 경우에는 도메인 계정으로 SQL Server 서비스를 시작하는 것이 좋습니다. Windows 클러스터링을 사용하는 가상 서버로 실행되도록 SQL Server를 구성할 경우에는 도메인 계정을 사용해야 합니다. 도메인 계정을 사용하면 암호가 변경될 때 수행해야 할 유지 관리 작업이 최소화된다는 이점이 있습니다. 그러나 SQL Server가 작업 그룹 내의 서버에 있으면 도메인 계정으로 SQL을 시작하지 못할 수 있습니다.

로컬 네트워크 계정

로컬로 만든 네트워크 계정으로 SQL Server를 시작할 수 있습니다. 로그 전달을 사용하도록 SQL Server를 구성한 경우와 같이 SQL Server 프로세스에 네트워크 액세스가 필요한 경우에는 네트워크 통과 보안을 사용할 수 있습니다. 통과 보안을 사용할 경우, SQL Server가 액세스할 모든 시스템에는 로컬로 구성된 같은 암호와 적절한 사용 권한을 지닌 같은 네트워크 계정이 있어야 합니다. 또한 SQL Server 프로세스가 보조 컴퓨터의 리소스를 요청할 때 같은 암호를 가진 동일한 계정(요청한 SQL Server 서비스를 시작하는 데 사용됨)이 있으면 기존 네트워크 보안이 무시됩니다. 호출하는 SQL Server가 요청한 작업을 수행할 수 있는 사용 권한이 보조 컴퓨터의 계정에 있기만 하면 해당 작업이 성공적으로 수행됩니다.

로컬 시스템 계정

로컬 시스템 계정으로도 SQL Server를 시작할 수 있습니다. LocalSystem 계정의 암호를 수정하면 시스템 안정성을 확보하는 데 필요한 일부 서비스에 장애가 발생할 수 있습니다. 이 계정은 이 계정이 있는 컴퓨터에 대한 로컬 계정입니다. 즉, SQL Server 서비스에 사용되는 보안 컨텍스트가 로컬입니다. "로컬 네트워크 계정" 절에서 설명한 것처럼 LocalSystem 계정으로 SQL Server를 시작할 때는 LocalSystem 계정의 암호가 컴퓨터마다 다르기 때문에 네트워크 통과 보안을 사용할 수 없습니다. 이 계정으로 SQL Server를 시작하면 네트워크 리소스 액세스가 필요할 때 해당 작업이 실패할 가능성이 높습니다.

네트워크 계정이 SQL Server와 SQL Server Agent 서비스를 성공적으로 시작하고 실행하는 데 필요한 최소 권한에 대한 자세한 내용은 SQL Server 온라인 설명서의 다음 항목을 참조하십시오.
Windows 서비스 계정 설정(영문)

SQL Server 보안 모델 이해

보안의 의미를 완전히 이해하려면 Microsoft가 SQL Server 2000에서 구현한 보안 모델을 이해해야 합니다. 이 보안 모델은 로그인을 만들 때 MASTER 데이터베이스의 syslogins 테이블에 추가됩니다. 또한 새로 추가된 이 로그인으로 액세스할 수 있는 각 데이터베이스의 sysusers 테이블에도 이 보안 모델이 추가됩니다. syslogins 테이블과 sysusers 테이블 간의 매핑은 SID 필드에 있습니다.

사용자 데이터베이스가 다른 서버로 이동하면 이전 서버의 SID 값도 함께 이동합니다. 보조 서버의 로그인이 같은 SID 값으로 만들어지지 않거나 보안이 부적절하게 구성된 경우에는 SID 값이 일치하지 않기 때문에 데이터베이스 보안이 해제됩니다.

자세한 내용은 Microsoft 기술 자료의 다음 문서를 참조하십시오.
240872 HOWTO: 데이터베이스를 SQL 서버 사이에서 이동할 때 사용 권한 문제를 해결하는 방법

로그 전달 구성

보안 요구 사항

공유 백업

로그 전달용으로 구성된 보조 서버의 SQL Server 서비스 시작 계정에 대한 읽기/변경 권한을 갖도록 트랜잭션 로그 백업을 보유하는 네트워크 공유를 구성합니다.

트랜잭션 로그 백업을 보유하는 네트워크 공유는 로그 전달용으로 구성된 보조 서버의 SQL Server 서비스 시작 계정에 대한 읽기/변경 권한을 갖도록 구성되어야 합니다. 이 공유는 각 보조 서버에서 해당 보조 서버의 로컬 폴더에 트랜잭션 로그 백업을 복사하는 복사 작업을 통해 액세스됩니다. 그런 다음에는 로드 작업이 로컬 폴더에서 이러한 백업을 로드합니다.

도메인 간 로그 전달

SQL Server 실행 컴퓨터가 여러 도메인으로 이루어진 환경에 있으면 로그 전달에 참여하는 모든 도메인 간에 양방향 트러스트를 설정하는 것이 좋습니다. 그러나 도메인 간에 트러스트를 설정할 수 없으면 로그 전달에 네트워크 통과 보안을 사용할 수 있습니다. 자세한 내용은 이 문서에서 SQL Server 관련 서비스에 대한 LocalSystem 네트워크 계정 시작 옵션을 설명하는 절을 참조하십시오.

모니터 서버에 연결하기 위한 인증 모드 선택

주 서버와 보조 서버별로 Windows 인증이나 SQL 인증을 선택하여 모니터 서버에 연결하고 모니터 테이블을 업데이트할 수 있습니다. 이러한 인증은 로그 전달을 설정하는 동안이나 로그 전달을 설정한 후 해당 로그 전달이 작동할 때 선택할 수 있습니다. 기본적으로 SQL Server는 Windows 인증을 사용합니다. 그러나 SQL 인증을 선택하면 SQL 로그인 log_shipping_monitor_probe가 없을 경우 주, 보조 및 모니터 서버에 새로 만들어집니다. 이러한 목적으로 SQL 인증을 선택하는 경우에는 SQL Server 및 Windows 인증 옵션을 사용하도록 SQL Server를 구성하십시오.

보조 서버의 대기 데이터베이스 보안 구성

대기 모드로 보조 데이터베이스를 구성한 경우에는 읽기 전용 상태로 이 데이터베이스에 액세스할 수 있습니다. 이 모드로 보조 데이터베이스를 복원하면 보고서를 오프라인으로 실행할 수 있기 때문에 프로덕션 시스템에서 일부 작업을 오프로드할 수 있습니다. 그러나 대기 데이터베이스가 읽기 전용 기능을 지원하려면 보조 서버에서 같은 보안 설정을 적용해야 합니다. 데이터베이스가 대기 상태에 있기 때문에 보안 구성을 목적으로 하는 어떠한 수정 작업도 수행할 수 없습니다. 이 경우 보조 서버에서 같은 SID 값을 사용하여 모든 SQL Server 로그인을 만들어야 합니다. 여러 도메인을 사용하더라도 Windows 로그인은 Windows GUID가 전역 고유 식별자이기 때문에 같은 SID를 자동으로 보유합니다.

여러 서버에서 같은 SID를 사용하여 SQL 로그인을 만드는 방법에 대한 자세한 내용은 Microsoft 기술 자료의 다음 문서를 참조하십시오.
303722 INF: "Guest" 사용자를 사용할 수 없을 때 대기 데이터베이스의 SQL 로그인에 액세스를 허용하는 방법

역할 변경 수행 시 보안 구성

로그 전달을 위한 역할 변경 절차에는 보조 서버를 주 서버의 수준으로 올리는 작업이 포함됩니다. 이 작업은 주 서버가 온라인 상태에 있을 때도 수행할 수 있고 오프라인 상태에 있을 때도 수행할 수 있습니다. 역할 변경이 수행되는 동안 최대 네 개의 저장 프로시저가 실행됩니다. 이러한 저장 프로시저 중 하나인 sp_resolve_logins는 대기 데이터베이스를 주 데이터베이스로 사용하기 직전에 해당 대기 데이터베이스에 있는 로그인의 SID 값을 수정하는 데 사용됩니다.

이 저장 프로시저가 실행되는 동안에는 이전 주 서버에 있는 syslogins 테이블의 .bcp 파일이 임시 테이블에 로드됩니다. 그런 다음 이 임시 테이블에 있는 각 로그인이 보조 서버의 MASTER 데이터베이스에 있는 syslogins 테이블 및 보조 데이터베이스의 sysusers 테이블과 비교됩니다. 보조 데이터베이스의 sysusers 테이블에 있는 것과 같은 SID 및 syslogins 테이블에 있는 것과 같은 이름의 로그인이 있는 임시 테이블의 각 로그인에서, 보조 데이터베이스의 SID는 sp_change_users_login을 사용하여 syslogins 테이블에 있는 것과 일치하도록 수정됩니다.

이 저장 프로시저를 사용하는 보안 구성에는 다음 사항이 필요합니다.
  • 보조 서버에서 SQL 로그인을 미리 만들어 두어야 합니다. 이렇게 하려면 로그인 전송 DTS 작업(SQL Server 온라인 설명서의 "로그 전달 역할 변경을 설정하고 수행하는 방법" 항목 참조)을 사용하십시오.
  • 주 서버에서 syslogins 테이블의 .bcp 파일을 제공해야 합니다. 이 파일은 최신 파일이어야 합니다. 그렇지 않으면 sp_resolve_logins로 로그인을 수정하지 못할 수도 있습니다.
sp_resolve_logins가 보조 데이터베이스에 있는 로그인을 실제로 수정하기 전에 아래 세 조건을 충족해야 합니다.
  1. syslogins 테이블의 .bcp 파일에 있는 로그인 이름이 주 서버의 syslogins 테이블에 있는 것과 일치해야 합니다.
  2. 보조 데이터베이스에 있는 sysusers 테이블과 .bcp 파일의 로그인 간에 SID 값이 일치해야 합니다.
  3. 보조 데이터베이스에 있는 SID 값이 보조 서버에 있는 MASTER 데이터베이스의 syslogins 테이블에 있는 것과 달라야 합니다.
303722에 설명된 대로 SQL Server 로그인을 만들면 보조 서버의 MASTER 데이터베이스에 있는 syslogins 테이블과 보조 데이터베이스의 sysusers 테이블에 있는 것과 같은 SID 값을 지닌 모든 로그인이 이미 존재하기 때문에 이 저장 프로시저를 실행할 필요가 없습니다.

질문과 대답

질문: 로그 전달이 보안 관련 변경 사항을 보조 서버에 자동으로 전파합니까?

대답: 예, 시스템 테이블에 대한 모든 변경 작업은 로깅되는 작업이기 때문에 보조 서버에 자동으로 전파됩니다.

질문: 같은 SID를 사용하는 로그인 두 개가 보조 서버에 있을 수 있습니까? 동일한 SQL Server 컴퓨터를 사용하여 여러 서버의 여러 대기 데이터베이스를 관리하고 있기 때문에 이러한 로그인 두 개가 필요합니다.

대답: 아니요, SQL Server 보안 모델에서는 같은 SID를 사용하는 로그인 두 개가 있을 수 없습니다. 여러 서버에 로그 전달을 사용하는 동안 SID가 충돌할 경우 이를 해결하는 유일한 방법은 주 서버에서 충돌하는 로그인을 삭제한 다음 보조 서버에 없는 SID를 사용하여 새 로그인을 만드는 것입니다.
로그 전달 역할 변경에 대한 자세한 내용은 Microsoft 기술 자료의 다음 문서를 참조하십시오.
314515 INF: 질문과 대답 - SQL Server 2000 - 로그 전달




Microsoft 제품 관련 기술 전문가들과 온라인으로 정보를 교환하시려면 Microsoft 뉴스 그룹에 참여하시기 바랍니다.

속성

기술 자료: 321247 - 마지막 검토: 2006년 2월 17일 금요일 - 수정: 3.2
본 문서의 정보는 다음의 제품에 적용됩니다.
  • Microsoft SQL Server 2000 Standard Edition
  • Microsoft SQL Server 2000 64-bit Edition
  • Microsoft SQL Server 2005 Standard Edition
  • Microsoft SQL Server 2005 Developer Edition
  • Microsoft SQL Server 2005 Enterprise Edition
  • Microsoft SQL Server 2005 Workgroup Edition
키워드:?
kbhowtomaster KB321247

피드백 보내기

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com