SQL Server 보안 설정

SQL Server 보안 설정을 플랫폼, 인증, 개체(데이터 포함) 및 시스템에 액세스하는 응용 프로그램의 네 영역에 관련된 일련의 단계로 볼 수 있습니다. 다음 항목에서는 효과적인 보안 계획을 만들고 구현하는 방법을 설명합니다.

SQL Server 웹 사이트에서 SQL Server 보안에 대한 자세한 정보를 확인할 수 있습니다. 여기에는 최상의 방법 안내와 보안 검사 목록도 포함되어 있습니다. 이 사이트에는 최신 서비스 팩 정보 및 다운로드도 포함되어 있습니다.

플랫폼 및 네트워크 보안

SQL Server에 대한 플랫폼에는 클라이언트를 데이터베이스 서버에 연결하는 물리적 하드웨어와 네트워킹 시스템 및 데이터베이스 요청을 처리하는 데 사용되는 이진 파일이 포함되어 있습니다.

물리적 보안

최상의 물리적 보안 방법은 물리적 서버 및 하드웨어 구성 요소에 대한 접근을 엄격하게 제한하는 것입니다. 예를 들어 데이터베이스 서버 하드웨어 및 네트워킹 장치가 있는 방에는 자물쇠를 달고 접근을 제한합니다. 또한 별도의 안전한 장소에 백업 미디어를 보관하여 접근을 제한합니다.

물리적 네트워크 보안의 구현은 권한이 없는 사용자가 네트워크에 접근하지 못하게 방지하는 것으로부터 시작됩니다. 다음 표에서는 네트워킹 보안에 대한 자세한 정보를 제공합니다.

내용

참조 항목

네트워킹 및 SQL Server

네트워크 프로토콜 및 TDS 끝점

SQL Server에 사용되는 포트 지정 및 제한

서버 네트워크 프로토콜 및 네트워크 라이브러리 구성

SQL Server에 대한 네트워크 액세스 제한

네트워크 액세스 제한

SQL Server Compact 3.5 SP1 및 다른 SQL Server 버전에 대한 네트워크 액세스

SQL Server Compact 3.5 SP1 온라인 설명서의 "서버 환경 구성 및 보안 설정"

백업 및 복원 전략

백업 및 복원에 대한 보안 고려 사항.

운영 체제 보안

운영 체제 서비스 팩 및 업그레이드에는 중요한 보안 향상 기능이 포함되어 있습니다. 모든 업데이트와 업그레이드를 데이터베이스 응용 프로그램을 사용하여 테스트한 후 운영 체제에 적용합니다.

방화벽을 사용하는 것도 효과적인 보안 구현 방법입니다. 논리적으로 방화벽은 네트워크 트래픽을 분리 또는 제한하므로 방화벽을 구성하여 조직의 데이터 보안 정책을 강화할 수 있습니다. 방화벽을 사용하면 보안 조치를 중점적으로 취할 수 있는 검사점이 제공되어 운영 체제 수준의 보안이 향상됩니다. 다음 표에서는 SQL Server의 방화벽 사용 방법에 대한 자세한 정보를 제공합니다.

내용

참조 항목

SQL Server에서 사용할 방화벽 구성

방법: 데이터베이스 엔진 액세스에 대한 Windows 방화벽 구성

Integration Services에서 사용할 방화벽 구성

Integration Services 액세스에 대한 Windows 방화벽 구성

Analysis Services에서 사용할 방화벽 구성

방법: Analysis Services 액세스를 허용하도록 Windows 방화벽 구성

Reporting Services에서 사용할 방화벽 구성

서버 배포 검사 목록

SQL Server에 액세스할 수 있도록 방화벽의 특정 포트 열기

방화벽에서 포트 열기

노출 영역 축소는 사용하지 않는 구성 요소를 중지하거나 비활성화하는 보안 조치입니다. 노출 영역 축소는 시스템에 대한 공격 가능성을 낮춤으로써 보안 향상에 도움이 됩니다. SQL Server의 노출 영역을 제한할 때의 핵심은 서비스와 사용자에게 적절한 권한만 부여하여 "최소한의 권한"으로 필요한 서비스를 실행하는 것입니다. 다음 표에서는 서비스 및 시스템 액세스에 대한 자세한 정보를 제공합니다.

내용

참조 항목

SQL Server에 필요한 서비스

Windows 서비스 계정 설정

서버 로그온 액세스 제한

대화형 로그온 액세스 제한

로컬 관리 권한

로컬 관리 권한 부여

SQL Server 시스템에서 인터넷 정보 서비스(IIS)를 사용하는 경우 추가 단계를 수행해야 플랫폼의 노출 영역에 대한 보안을 설정할 수 있습니다. 다음 표에서는 SQL Server 및 인터넷 정보 서비스에 대한 자세한 정보를 제공합니다.

내용

참조 항목

SQL Server Compact 3.5 SP1에서의 IIS 보안

SQL Server Compact 3.5 SP1 온라인 설명서의 "IIS 보안"

SQL Server 및 IIS에서 웹 서비스 사용

네이티브 XML 웹 서비스 사용을 위한 최선의 구현 방법

보고서 서버 및 인터넷 액세스

엑스트라넷 또는 인터넷 배포 계획

Reporting Services 인증

Reporting Services의 인증

SQL Server Compact 3.5 SP1 및 IIS 액세스

SQL Server Compact 3.5 SP1 온라인 설명서의 "인터넷 정보 서비스 보안 순서도"

SQL Server 운영 체제 파일 보안

SQL Server는 작업 및 데이터 저장을 위해 운영 체제 파일을 사용합니다. 최상의 파일 보안 방법은 이러한 파일에 대한 액세스를 제한하는 것입니다. 다음 표에서는 이러한 파일에 대해 설명합니다.

SQL Server 서비스 팩 및 업그레이드는 향상된 보안 기능을 제공합니다. SQL Server에 사용할 수 있는 최신 서비스 팩을 확인하려면 SQL Server 웹 사이트를 참조하십시오.

다음 스크립트를 사용하여 시스템에 설치된 서비스 팩을 확인할 수 있습니다.

SELECT CONVERT(char(20), SERVERPROPERTY('productlevel'));
GO

보안 주체 및 데이터베이스 개체 보안

보안 주체는 SQL Server에 대한 액세스 권한을 부여 받은 개인, 그룹 및 프로세스입니다. “보안 개체”는 서버, 데이터베이스 및 데이터베이스에 포함된 개체입니다. SQL Server 노출 영역이 감소되도록 각 보안 개체의 사용 권한 집합을 구성할 수 있습니다. 다음 표에서는 보안 주체 및 보안 개체에 대한 자세한 정보를 제공합니다.

내용

참조 항목

서버와 데이터베이스 사용자, 역할 및 프로세스

보안 주체(데이터베이스 엔진)

서버 및 데이터베이스 개체 보안

보안 개체

SQL Server 보안 계층

사용 권한 계층(데이터베이스 엔진)

데이터베이스 및 응용 프로그램 보안에 대한 자세한 내용은 ID 및 액세스 제어(데이터베이스 엔진)을 참조하십시오.

암호화 및 인증서

암호화를 통해 액세스 제어 문제를 해결할 수는 없습니다. 그러나 암호화를 사용하면 드물게 발생하긴 하지만 액세스 제어가 무시되는 경우에도 데이터 손실을 제한하여 보안이 향상됩니다. 예를 들어 데이터베이스 호스트 컴퓨터가 잘못 구성되어 악의적인 사용자가 신용 카드 번호와 같은 중요한 데이터를 얻는 경우 해당 정보가 암호화되어 있으면 도난 당한 정보를 사용할 수 없을 수도 있습니다. 다음 표에서는 SQL Server의 암호화에 대한 자세한 정보를 제공합니다.

내용

참조 항목

SQL Server의 암호화 계층

암호화 계층

SQL Server 연결 암호화

SQL Server 연결 암호화

안전한 연결 구현

방법: 데이터베이스 엔진에 암호화 연결 사용(SQL Server 구성 관리자)

암호화 함수

암호화 함수(Transact-SQL)

암호화 구현

암호화 방법 도움말 항목

Analysis Services의 데이터 암호화 설정

데이터 암호화 요구

인증서는 강력한 인증을 통해 안전한 통신을 수행할 수 있도록 두 서버 간에 공유되는 소프트웨어 "키"입니다. SQL Server에서 인증서를 만들고 사용하여 개체 및 연결 보안을 향상시킬 수 있습니다. 다음 표에서는 SQL Server의 인증서 사용 방법에 대한 자세한 정보를 제공합니다.

내용

참조 항목

안전한 연결을 위한 인증서 사용

SSL에 사용되는 인증서 구성

SQL Server에서 사용할 인증서 만들기

CREATE CERTIFICATE(Transact-SQL)

SQL Server Service Broker에서 인증서 사용

인증서 및 Service Broker

데이터베이스 미러링에 인증서 사용

데이터베이스 미러링에 대한 인증서 사용

응용 프로그램 보안

최상의 SQL Server 보안 방법에는 보안 클라이언트 응용 프로그램 작성이 포함됩니다. 서버 액세스 및 SQL Server 클라이언트 응용 프로그램에 대한 자세한 내용은 개발자 가이드(데이터베이스 엔진)를 참조하십시오.

네트워킹 계층에서 클라이언트 응용 프로그램의 보안을 설정하는 방법은 클라이언트 네트워크 구성을 참조하십시오.

네이티브 XML 서비스를 사용하는 응용 프로그램을 작성하는 방법은 클라이언트 응용 프로그램 작성을 참조하십시오.

SQL Server 보안 도구, 유틸리티, 뷰 및 함수

SQL Server는 보안을 구성하고 관리하는 데 사용할 수 있는 도구, 유틸리티, 뷰 및 함수를 제공합니다.

SQL Server 보안 도구 및 유틸리티

다음 표에서는 보안을 구성하고 관리하는 데 사용할 수 있는 SQL Server 도구 및 유틸리티에 대한 자세한 정보를 제공합니다.

내용

참조 항목

SQL Server 연결, 구성 및 제어

SQL Server Management Studio 소개

SQL Server 연결 및 명령 프롬프트에서 쿼리 실행

sqlcmd 유틸리티

SQL Server에 대한 네트워크 구성 및 제어

SQL Server 구성 관리자

정책 기반 관리를 사용하여 기능 설정 및 해제

정책 기반 관리를 사용하여 서버 관리

보고서 서버에 대한 대칭 키 조작

rskeymgmt 유틸리티

SQL Server 보안 카탈로그 뷰 및 함수

데이터베이스 엔진은 성능과 유틸리티에 맞게 최적화된 다양한 뷰 및 함수를 통해 보안 정보를 표시합니다. 다음 표에서는 보안 뷰 및 함수에 대한 자세한 정보를 제공합니다.

내용

참조 항목

데이터베이스 수준 및 서버 수준의 사용 권한, 보안 주체, 역할 등에 대한 정보를 반환하는 SQL Server 보안 카탈로그 뷰. 암호화 키, 인증서 및 자격 증명에 대한 정보를 제공하는 카탈로그 뷰도 있습니다.

보안 카탈로그 뷰(Transact-SQL)

현재 사용자, 사용 권한 및 스키마에 대한 정보를 반환하는 SQL Server 보안 함수

보안 함수(Transact-SQL)

SQL Server 보안 동적 관리 뷰 

보안 관련 동적 관리 뷰 및 함수(Transact-SQL)