SQL Server 보안
적용 대상: SQL Server
SQL Server의 보안을 설정하는 것은 플랫폼, 인증, 개체(데이터 포함) 및 시스템에 액세스하는 애플리케이션의 네 가지 영역과 관련된 일련의 단계로 볼 수 있습니다. 이 문서에서는 효과적인 보안 계획을 만들고 이를 구현하는 방법을 전반적으로 안내합니다.
SQL Server 보안 모범 사례에서 SQL Server 보안에 대한 자세한 정보를 찾을 수 있습니다. 여기에는 모범 사례 가이드 및 보안 체크리스트가 포함됩니다. 최신 서비스 팩 또는 누적 업데이트를 반드시 설치합니다.
플랫폼 및 네트워크 보안
SQL Server용 플랫폼에는 클라이언트를 데이터베이스 서버에 연결하는 물리적 하드웨어 및 네트워킹 시스템과, 데이터베이스 요청을 처리하는 데 사용되는 이진 파일이 포함됩니다.
물리적 보안
물리적 보안에 대한 모범 사례에서는 물리적 서버 및 하드웨어 구성 요소에 대한 액세스를 엄격하게 제한합니다. 예를 들어 잠긴 공간을 사용하여 데이터베이스 서버 하드웨어 및 네트워킹 디바이스에 대한 액세스를 제한합니다. 또한 안전한 오프사이트 위치에 미디어를 저장하여 미디어 백업에 대한 액세스를 제한합니다.
물리적 네트워크 보안의 구현은 권한이 없는 사용자가 네트워크에 접근하지 못하게 방지하는 것으로부터 시작됩니다. 자세한 내용은 SQL Server 보안 모범 사례 - 인프라 위협을 참조하세요.
운영 체제 보안
운영 체제 서비스 팩 및 업그레이드에는 중요한 보안 향상 기능이 포함됩니다. 데이터베이스 애플리케이션을 사용하여 모든 업데이트 및 업그레이드를 테스트한 후 이를 운영 체제에 적용합니다.
방화벽을 사용하는 것도 효과적인 보안 구현 방법입니다. 논리적으로 방화벽은 네트워크 트래픽을 분리 또는 제한하므로 방화벽을 구성하여 조직의 데이터 보안 정책을 강화할 수 있습니다. 방화벽을 사용하는 경우 보안 조치를 집중시킬 수 있는 초크포인트를 제공하여 운영 체제 수준에서 보안을 강화합니다. 다음 표에서는 SQL Server의 방화벽 사용 방법에 대한 자세한 정보를 제공합니다.
추가 정보 | 참조 |
---|---|
SQL Server에서 사용하도록 방화벽 구성 | 데이터베이스 엔진 액세스에 대한 Windows 방화벽 구성 |
통합 서비스에서 사용하도록 방화벽 구성 | Integration Services 서비스(SSIS 서비스) |
Analysis Services에서 사용하도록 방화벽 구성 | Analysis Services 액세스를 허용하도록 Windows 방화벽 구성 |
방화벽에 SQL Server에 액세스할 수 있는 특정 포트 열기 | SQL Server 액세스를 허용하도록 Windows 방화벽 구성 |
채널 바인딩 및 서비스 바인딩을 사용하여 인증에 대한 확장된 보호 지원 구성 | 확장된 보호를 사용하여 데이터베이스 엔진에 연결 |
노출 영역 감소는 사용하지 않는 구성 요소를 중지하거나 사용 안 함으로 설정하는 보안 조치입니다. 노출 영역 감소는 시스템에 대한 잠재적 공격 경로를 줄여 보안을 개선하는 데 도움이 됩니다. SQL Server의 노출 영역을 제한할 때의 핵심은 서비스와 사용자에게 적절한 권한만 부여하여 “최소한의 권한”으로 필요한 서비스를 실행하는 것입니다. 다음 표에는 서비스 및 시스템 액세스에 대한 자세한 정보가 포함되어 있습니다.
추가 정보 | 참조 |
---|---|
SQL Server에 필요한 서비스 | Windows 서비스 계정 및 권한 구성 |
SQL Server 시스템에서 IIS(인터넷 정보 서비스)를 사용하는 경우 추가 단계를 수행해야 플랫폼의 노출 영역에 대한 보안을 설정할 수 있습니다. 다음 표에서는 SQL Server 및 인터넷 정보 서비스에 대한 자세한 정보를 제공합니다.
추가 정보 | 참조 |
---|---|
SQL Server Compact를 사용하는 IIS 보안 | SQL Server 보안 - 운영 체제 보안 |
Reporting Services 인증 | Reporting Services의 인증 |
SQL Server Compact 및 IIS 액세스 | 인터넷 정보 서비스 보안 순서도 |
SQL Server 운영 체제 파일 보안
SQL Server는 운영 체제 파일을 작업 및 데이터 저장에 사용합니다. 파일 보안의 모범 사례를 사용하려면 이러한 파일에 대한 액세스를 제한해야 합니다. 다음 표에서는 이러한 파일에 대해 설명합니다.
추가 정보 | 참조 |
---|---|
SQL Server 프로그램 파일 | SQL Server 기본 인스턴스 및 명명된 인스턴스의 파일 위치 |
SQL Server 서비스 팩 및 업그레이드는 강화된 보안 기능을 제공합니다. SQL Server에 사용할 수 있는 최신 서비스 팩을 확인하려면 SQL Server 웹 사이트를 참조하세요.
다음 스크립트를 사용하여 시스템에 설치된 서비스 팩을 확인할 수 있습니다.
SELECT CONVERT(char(20), SERVERPROPERTY('productlevel'));
주체 및 데이터베이스 개체 보안
보안 주체는 SQL Server에 대한 액세스 권한을 부여 받은 개인, 그룹 및 프로세스입니다. "보안 개체"는 서버, 데이터베이스 및 데이터베이스에 포함된 개체입니다. SQL Server 노출 영역이 감소되도록 각 보안 개체의 사용 권한 집합을 구성할 수 있습니다. 다음 표에서는 보안 주체 및 보안 개체에 대한 자세한 정보를 제공합니다.
추가 정보 | 참조 |
---|---|
서버와 데이터베이스 사용자, 역할 및 프로세스 | 보안 주체(데이터베이스 엔진) |
서버 및 데이터베이스 개체 보안 | 보안 개체 |
SQL Server 보안 계층 구조 | 사용 권한 계층(데이터베이스 엔진) |
암호화 및 인증서
암호화를 통해 액세스 제어 문제를 해결할 수는 없습니다. 그러나 암호화를 사용하면 드물게 발생하긴 하지만 액세스 제어가 무시되는 경우에도 데이터 손실을 제한하여 보안이 향상됩니다. 예를 들어 데이터베이스 호스트 컴퓨터가 잘못 구성되어 악의적인 사용자가 신용 카드 번호와 같은 중요한 데이터를 얻는 경우 해당 정보가 암호화되어 있으면 도난 당한 정보를 사용할 수 없을 수도 있습니다. 다음 표에서는 SQL Server에서의 암호화에 대한 자세한 정보를 제공합니다.
추가 정보 | 참조 |
---|---|
SQL Server의 암호화 계층 구조 | 암호화 계층 |
안전한 연결 구현 | 데이터베이스 엔진에 암호화 연결 사용(SQL Server 구성 관리자) |
암호화 함수 | 암호화 함수(Transact-SQL) |
인증서는 두 서버 간에 공유되는 소프트웨어 "키"로서 강력한 인증을 통해 보안 통신을 가능하게 합니다. SQL Server에서 인증서를 만들고 사용하여 개체 및 연결 보안을 강화할 수 있습니다. 다음 표에서는 SQL Server의 인증서 사용 방법에 대한 자세한 정보를 제공합니다.
추가 정보 | 참조 |
---|---|
SQL Server에서 사용할 인증서 만들기 | CREATE CERTIFICATE(Transact-SQL) |
데이터베이스 미러링과 함께 인증서 사용 | 데이터베이스 미러링 엔드포인트에 대한 인증서 사용(Transact-SQL) |
애플리케이션 보안
클라이언트 프로그램
SQL Server 보안 모범 사례에는 보안 클라이언트 애플리케이션 작성이 포함됩니다. 네트워킹 계층에서 클라이언트 애플리케이션의 보안을 설정하는 방법은 Client Network Configuration을 참조하십시오.
WDAC(Windows Defender 애플리케이션 제어)
WDAC(Windows Defender Application Control)는 무단 코드 실행을 방지합니다. WDAC는 실행 파일 기반 맬웨어의 위협을 완화하는 효과적인 방법입니다. 자세한 내용은 Windows Defender Application Control 문서를 참조하세요.
SQL Server 보안 도구, 유틸리티, 보기 및 함수
SQL Server는 보안을 구성하고 관리하는 데 사용할 수 있는 도구, 유틸리티, 보기 및 함수를 제공합니다.
SQL Server 보안 도구 및 유틸리티
다음 표에는 보안을 구성하고 관리하는 데 사용할 수 있는 SQL Server 도구 및 유틸리티에 대한 정보가 포함되어 있습니다.
추가 정보 | 참조 |
---|---|
SQL Server 연결, 구성 및 제어 | SQL Server Management Studio 사용 |
SQL Server 연결 및 명령 프롬프트에서 쿼리 실행 | sqlcmd 유틸리티 |
SQL Server에 대한 네트워크 구성 및 제어 | SQL Server 구성 관리자 |
정책 기반 관리를 사용한 기능 사용 및 사용 안 함 설정 | 정책 기반 관리를 사용하여 서버 관리 |
보고서 서버에 대한 대칭 키 조작 | rskeymgmt 유틸리티(SSRS) |
SQL Server 보안 카탈로그 뷰 및 함수
데이터베이스 엔진은 성능과 유틸리티에 맞게 최적화된 다양한 뷰 및 함수를 통해 보안 정보를 표시합니다. 다음 표에서는 보안 뷰 및 함수에 대한 자세한 정보를 제공합니다.
추가 정보 | 참조 |
---|---|
데이터베이스 수준 및 서버 수준의 사용 권한, 보안 주체, 역할 등에 대한 정보를 반환하는 SQL Server 보안 카탈로그 뷰. 암호화 키, 인증서 및 자격 증명에 대한 정보를 제공하는 카탈로그 뷰도 있습니다. | 보안 카탈로그 뷰(Transact-SQL) |
현재 사용자, 사용 권한 및 스키마에 대한 정보를 반환하는 SQL Server 보안 함수. | 보안 함수(Transact-SQL) |
SQL Server 보안 동적 관리 뷰입니다. | 보안 관련 동적 관리 뷰 및 함수(Transact-SQL) |