백업 및 복원에 대한 보안 고려 사항
이 항목에서는 MicrosoftSQL Server 데이터베이스 백업의 보안 유지를 위한 권장 사항에 대해 설명합니다.
[!참고]
데이터베이스가 백업되거나 복원될 때마다 설정되는 파일 사용 권한에 대한 자세한 내용은 데이터 및 로그 파일 보안을 참조하십시오.
로그 백업 관리
전체 복구 모델 또는 대량 로그 복구 모델을 사용하는 경우 로그 백업을 잃어버리면 이전 백업 이후의 데이터베이스를 복원하지 못할 수 있습니다. 로그를 디스크에 백업한 다음 별도의 디스크나 테이프와 같은 다른 장치에 디스크 파일을 복사하여 여러 개의 로그 백업 복사본을 만드십시오.
이때 일련의 데이터베이스 백업에 대해 로그 백업의 체인을 저장하는 것이 좋습니다. 가장 최근의 전체 데이터베이스 백업을 사용할 수 없는 경우 이전의 전체 데이터베이스 백업을 복원한 다음 이전의 전체 데이터베이스 백업 후에 만든 트랜잭션 로그 백업을 모두 복원할 수 있습니다.
로그 백업을 잃어버렸을 때 잃어버린 로그 백업보다 앞선 트랜잭션 로그 백업 내의 지정 시간으로 데이터베이스를 복원하려는 경우 이 트랜잭션 로그 백업을 유지하는 것이 좋습니다.
물리적 보호
백업 테이프를 보호하려면 안전한 외부 위치에 보관하는 것이 좋습니다.
백업 디스크 파일을 보호하려면 제한적 ACL(액세스 제어 목록)에 의해 보호되는 디스크 파일만 백업하는 것이 좋습니다. ACL은 백업이 생성되는 디렉터리 루트에 설정해야 합니다. 경우에 따라 NTFS EFS(암호화 파일 시스템)를 사용하여 디스크 기반 백업의 보호를 더욱 강화할 수도 있습니다. 또한 Windows 백업을 사용하여 SQL Server 디스크 백업을 테이프에 백업하는 것이 좋습니다. 이렇게 하면 백업이 외부의 안전한 위치에 보관됩니다. 자세한 내용은 Windows 설명서를 참조하십시오.
백업 암호 보호
SQL Server는 백업 미디어와 백업 세트에 대한 암호 보호를 지원합니다.
중요 |
---|
암호에 의한 보호 수준은 낮은 편이며 권한 유무에 관계없이 사용자가 SQL Server 도구를 사용하여 잘못된 복원을 수행하는 것을 방지합니다. 이때 다른 방법을 사용한 백업 데이터 읽기나 암호 바꾸기는 방지하지 않습니다. 이 기능은 다음 버전의 Microsoft SQL Server에서 제거됩니다. 새 개발 작업에서는 이 기능을 사용하지 않도록 하고, 현재 이 기능을 사용하는 응용 프로그램은 수정하십시오. |
백업 작업에 암호가 요구되는 것은 아니지만 암호를 사용하면 보안 수준을 높일 수 있습니다. SQL Server 보안 역할을 사용하는 데도 암호를 사용할 수 있습니다. 암호를 설정하면 다음과 같은 동작이 무단 또는 실수로 실행되는 것을 방지할 수 있습니다.
데이터베이스 복원
미디어에 추가
미디어 덮어쓰기
중요 |
---|
암호 보안을 미디어를 포맷하거나 연속 테이프에 사용해도 해당 미디어를 덮어쓸 수가 있습니다. 또한 암호를 지정하더라도 데이터가 암호화되는 것은 아닙니다. |
미디어 세트 암호
이 암호는 미디어 세트에 저장된 데이터를 낮은 수준으로 보호합니다. 미디어 세트 암호는 미디어 헤더를 기록할 때 저장되며 변경할 수 없습니다. 미디어 세트를 포맷할 때 암호를 지정한 경우 해당 미디어 세트에 백업 세트를 만들 때 해당 암호를 제공해야 합니다. 또한 미디어 세트에서 복원 작업을 수행하려면 해당 미디어 암호도 제공해야 합니다.
[!참고]
SQL Server 백업 및 복원 작업에만 이 미디어를 사용할 수 있습니다.
미디어 세트 암호를 지정하려면 BACKUP 또는 RESTORE 문의 MEDIAPASSWORD 옵션을 사용하십시오.
백업 세트 암호
이 암호는 특정 백업 세트를 낮은 수준으로 보호합니다. 미디어의 각 백업 세트마다 다른 백업 세트 암호를 사용할 수 있습니다. 백업 세트 암호는 백업 세트를 미디어에 기록할 때 생성됩니다. 백업 세트에 암호가 지정되어 있으면 해당 백업 세트에서 복원을 수행할 때 해당 암호를 제공해야 합니다.
백업 세트 암호를 지정하려면 BACKUP 또는 RESTORE 문의 PASSWORD 옵션을 사용하십시오.
신뢰할 수 있는 출처에서 제공하는 백업만 복원
알 수 없거나 신뢰할 수 없는 출처의 데이터베이스는 연결 또는 복원하지 않는 것이 좋습니다. 이러한 데이터베이스에 포함된 악성 코드가 의도하지 않은 Transact-SQL 코드를 실행하거나 스키마 또는 물리적 데이터베이스 구조를 수정하여 오류가 발생할 수 있습니다. 알 수 없거나 신뢰할 수 없는 출처의 데이터베이스를 사용하기 전에 프로덕션 서버가 아닌 서버에서 해당 데이터베이스에 대해 DBCC CHECKDB를 실행합니다. 또한 저장 프로시저 또는 다른 사용자 정의 코드 같은 데이터베이스의 코드도 검사하십시오.