SQL Server 설치에 대한 보안 고려 사항Security Considerations for a SQL Server Installation

보안은 모든 제품과 모든 비즈니스에서 중요합니다.Security is important for every product and every business. 간단한 권장 사항을 따르면 많은 보안상의 취약점을 방지할 수 있습니다.By following simple best practices, you can avoid many security vulnerabilities. 이 항목에서는 SQL ServerSQL Server 를 설치하기 전과 SQL ServerSQL Server를 설치한 후에 모두 고려해야 하는 보안 권장 사항에 대해 설명합니다.This topic discusses some security best practices that you should consider both before you install SQL ServerSQL Server and after you install SQL ServerSQL Server. 특정 기능에 대한 보안 지침은 해당 기능에 대한 참조 항목에 포함되어 있습니다.Security guidance for specific features is included in the reference topics for those features.

다음 설치 전 SQL ServerSQL ServerBefore Installing SQL ServerSQL Server

서버 환경을 설정하는 경우 다음 권장 사항을 따르십시오.Follow these best practices when you set up the server environment:

Enhance Physical Security Enhance Physical Security

물리적 및 논리적 격리는 SQL ServerSQL Server 보안의 기반이 됩니다.Physical and logical isolation make up the foundation of SQL ServerSQL Server security. SQL ServerSQL Server 설치의 물리적 보안을 강화하려면 다음 태스크를 수행하십시오.To enhance the physical security of the SQL ServerSQL Server installation, do the following tasks:

  • 허가받은 사람만 출입할 수 있는 공간에 서버를 둡니다.Place the server in a room accessible only to authorized persons.

  • 데이터베이스를 호스팅하는 컴퓨터를 물리적으로 보호된 위치에 둡니다. 누수 및 화재 감지 또는 억제 시스템을 갖춘 밀폐된 컴퓨터실이 가장 좋습니다.Place computers that host a database in a physically protected location, ideally a locked computer room with monitored flood detection and fire detection or suppression systems.

  • 데이터베이스를 기업 인트라넷의 보안 영역에 설치하고 SQL Server를 인터넷에 직접 연결하지 않습니다.Install databases in the secure zone of the corporate intranet and do not connect your SQL Servers directly to the Internet.

  • 모든 데이터를 정기적으로 백업하고 멀리 떨어진 지역에 백업을 안전하게 보관합니다.Back up all data regularly and secure the backups in an off-site location.

Use Firewalls Use Firewalls

방화벽은 SQL ServerSQL Server 설치의 보안에 중요합니다.Firewalls are important to help secure the SQL ServerSQL Server installation. 방화벽의 효율적인 작동을 위해 지켜야 할 지침은 다음과 같습니다.Firewalls will be most effective if you follow these guidelines:

  • 방화벽을 서버와 인터넷 사이에 둡니다.Put a firewall between the server and the Internet. 방화벽을 설정합니다.Enable your firewall. 방화벽이 해제되어 있으면 설정하고If your firewall is turned off, turn it on. 방화벽이 설정되어 있으면 해제하지 마십시오.If your firewall is turned on, do not turn it off.

  • 네트워크를 방화벽으로 분리된 여러 보안 영역으로 나눕니다.Divide the network into security zones separated by firewalls. 모든 트래픽을 차단한 다음 필요한 것만 선택적으로 허용합니다.Block all traffic, and then selectively admit only what is required.

  • 다중 계층 환경에서는 여러 방화벽을 사용하여 스크린된 서브넷을 만듭니다.In a multi-tier environment, use multiple firewalls to create screened subnets.

  • Windows 도메인 내에 서버를 설치할 경우 Windows 인증을 허용하도록 내부 방화벽을 구성합니다.When you are installing the server inside a Windows domain, configure interior firewalls to allow Windows Authentication.

  • 응용 프로그램에서 분산 트랜잭션을 사용하는 경우 MS DTC( MicrosoftMicrosoft Distributed Transaction Coordinator) 트래픽이 개별 MS DTC 인스턴스 간에 전달될 수 있도록 방화벽을 구성해야 합니다.If your application uses distributed transactions, you might have to configure the firewall to allow MicrosoftMicrosoft Distributed Transaction Coordinator (MS DTC) traffic to flow between separate MS DTC instances. 또한 MS DTC와 SQL ServerSQL Server와 같은 리소스 관리자 간에도 트래픽이 전달되도록 방화벽을 구성해야 합니다.You will also have to configure the firewall to allow traffic to flow between the MS DTC and resource managers such as SQL ServerSQL Server.

    기본 Windows 방화벽 설정 방법과 데이터베이스 엔진Database Engine, Analysis ServicesAnalysis Services, Reporting ServicesReporting ServicesIntegration ServicesIntegration Services에 영향을 주는 TCP 포트에 대한 자세한 내용은 SQL Server 액세스를 허용하도록 Windows 방화벽 구성을 참조하세요.For more information about the default Windows firewall settings, and a description of the TCP ports that affect the 데이터베이스 엔진Database Engine, Analysis ServicesAnalysis Services, Reporting ServicesReporting Services, and Integration ServicesIntegration Services, see Configure the Windows Firewall to Allow SQL Server Access.

Isolate Services Isolate Services

서비스를 격리하면 하나의 손상된 서비스가 다른 서비스를 손상시키는 위험을 줄일 수 있습니다.Isolating services reduces the risk that one compromised service could be used to compromise others. 서비스를 격리하려면 다음 지침을 따르십시오.To isolate services, consider the following guidelines:

  • 별도의 Windows 계정으로 별도의 SQL ServerSQL Server 서비스를 실행합니다.Run separate SQL ServerSQL Server services under separate Windows accounts. 가능하면 각 SQL ServerSQL Server 서비스에 별도의 낮은 권한의 Windows 또는 로컬 사용자 계정을 사용합니다.Whenever possible, use separate, low-rights Windows or Local user accounts for each SQL ServerSQL Server service. 자세한 내용은 Windows 서비스 계정 및 권한 구성을 참조하세요.For more information, see Configure Windows Service Accounts and Permissions.

Configure a Secure File System Configure a Secure File System

올바른 파일 시스템을 사용하면 보안이 강화됩니다.Using the correct file system increases security. SQL ServerSQL Server 설치의 경우 다음 태스크를 수행해야 합니다.For SQL ServerSQL Server installations, you should do the following tasks:

  • NTFS 파일 시스템(NTFS)을 사용합니다.Use the NTFS file system (NTFS). NTFS는 FAT 파일 시스템에 비해 안정적이고 복구 가능하기 때문에 SQL ServerSQL Server 설치에 적합한 파일 시스템입니다.NTFS is the preferred file system for installations of SQL ServerSQL Server because it is more stable and recoverable than FAT file systems. NTFS에서는 또한 파일 및 디렉터리 ACL(액세스 제어 목록) 및 EFS(파일 시스템 암호화) 파일 암호화와 같은 보안 옵션도 사용할 수 있습니다.NTFS also enables security options like file and directory access control lists (ACLs) and Encrypting File System (EFS) file encryption. 설치 중 NTFS가 감지되면 SQL ServerSQL Server 는 적절한 ACL을 레지스트리 키와 파일에 설정합니다.During installation, SQL ServerSQL Server will set appropriate ACLs on registry keys and files if it detects NTFS. 이러한 사용 권한은 변경할 수 없습니다.These permissions should not be changed. 이후 SQL ServerSQL Server 릴리스에서는 FAT 파일 시스템이 있는 컴퓨터에 대한 설치를 지원하지 않을 수 있습니다.Future releases of SQL ServerSQL Server might not support installation on computers with FAT file systems.

    참고

    EFS를 사용할 경우 SQL ServerSQL Server를 실행하는 계정의 ID로 데이터베이스 파일이 암호화됩니다.If you use EFS, database files will be encrypted under the identity of the account running SQL ServerSQL Server. 파일 해독도 이 계정으로만 할 수 있습니다.Only this account will be able to decrypt the files. SQL ServerSQL Server를 실행하는 계정을 변경해야 하는 경우 먼저 이전 계정으로 파일을 해독한 다음 새 계정으로 파일을 다시 암호화해야 합니다.If you must change the account that runs SQL ServerSQL Server, you should first decrypt the files under the old account and then re-encrypt them under the new account.

  • 중요한 데이터 파일에는 RAID(Redundant Array of Independent Disks)를 사용합니다.Use a redundant array of independent disks (RAID) for critical data files.

Disable NetBIOS and Server Message Block Disable NetBIOS and Server Message Block

경계 네트워크에 있는 서버에는 NetBIOS 및 SMB(서버 메시지 블록) 등의 불필요한 모든 프로토콜이 비활성화되어 있어야 합니다.Servers in the perimeter network should have all unnecessary protocols disabled, including NetBIOS and server message block (SMB).

NetBIOS는 다음 포트를 사용합니다.NetBIOS uses the following ports:

  • UDP/137(NetBIOS 이름 서비스)UDP/137 (NetBIOS name service)

  • UDP/138(NetBIOS 데이터그램 서비스)UDP/138 (NetBIOS datagram service)

  • TCP/139(NetBIOS 세션 서비스)TCP/139 (NetBIOS session service)

    SMB는 다음 포트를 사용합니다.SMB uses the following ports:

  • TCP/139TCP/139

  • TCP/445TCP/445

    웹 서버 및 DNS(Domain Name System) 서버에는 NetBIOS 또는 SMB가 필요 없습니다.Web servers and Domain Name System (DNS) servers do not require NetBIOS or SMB. 이러한 서버에서 두 프로토콜을 모두 비활성화하여 사용자 목록 노출 위협을 줄이십시오.On these servers, disable both protocols to reduce the threat of user enumeration.

도메인 컨트롤러에 SQL ServerSQL Server 설치 Installing SQL ServerSQL Server on a domain controller

보안상의 이유로 SQL ServerSQL Server 는 도메인 컨트롤러에 설치하지 않는 것이 좋습니다.For security reasons, we recommend that you do not install SQL ServerSQL Server on a domain controller. SQL ServerSQL Server 설치 프로그램은 도메인 컨트롤러 컴퓨터에 설치하는 것을 차단하지는 않지만 다음과 같은 제한 사항을 적용합니다. Setup will not block installation on a computer that is a domain controller, but the following limitations apply:

  • 도메인 컨트롤러에서는 로컬 서비스 계정으로 SQL ServerSQL Server 서비스를 실행할 수 없습니다.You cannot run SQL ServerSQL Server services on a domain controller under a local service account.

  • SQL ServerSQL Server 를 컴퓨터에 설치한 후에는 도메인 멤버에서 도메인 컨트롤러로 컴퓨터를 변경할 수 없습니다.After SQL ServerSQL Server is installed on a computer, you cannot change the computer from a domain member to a domain controller. 호스트 컴퓨터를 도메인 컨트롤러로 변경하려면 먼저 SQL ServerSQL Server 를 제거해야 합니다.You must uninstall SQL ServerSQL Server before you change the host computer to a domain controller.

  • SQL ServerSQL Server 를 컴퓨터에 설치한 후에는 도메인 컨트롤러에서 도메인 멤버로 컴퓨터를 변경할 수 없습니다.After SQL ServerSQL Server is installed on a computer, you cannot change the computer from a domain controller to a domain member. 호스트 컴퓨터를 도메인 멤버로 변경하려면 먼저 SQL ServerSQL Server 를 제거해야 합니다.You must uninstall SQL ServerSQL Server before you change the host computer to a domain member.

  • SQL ServerSQL Server 장애 조치 클러스터 인스턴스는 클러스터 노드가 도메인 컨트롤러인 경우 지원되지 않습니다. failover cluster instances are not supported where cluster nodes are domain controllers.

  • SQL ServerSQL Server 설치 프로그램은 읽기 전용 도메인 컨트롤러에서 보안 그룹을 만들거나 SQL ServerSQL Server 서비스 계정을 프로비전할 수 없습니다. Setup cannot create security groups or provision SQL ServerSQL Server service accounts on a read-only domain controller. 이 경우 설치 프로그램에서 오류가 발생합니다.In this scenario, Setup will fail.

다음 설치 도중 또는 설치 후 SQL ServerSQL ServerDuring or After Installation of SQL ServerSQL Server

설치 후에도 계정 및 인증 모드에 대한 권장 사항을 수행하여 SQL ServerSQL Server 의 보안을 강화할 수 있습니다.After installation, you can enhance the security of the SQL ServerSQL Server installation by following these best practices regarding accounts and authentication modes:

서비스 계정Service accounts

  • 가장 낮은 사용자 권한을 사용하여 SQL ServerSQL Server 서비스를 실행합니다.Run SQL ServerSQL Server services by using the lowest possible permissions.

  • SQL ServerSQL Server 서비스를 낮은 권한을 가진 Windows 로컬 사용자 계정 또는 도메인 사용자 계정과 연결합니다.Associate SQL ServerSQL Server services with low privileged Windows local user accounts, or domain user accounts.

  • 자세한 내용은 Windows 서비스 계정 및 권한 구성을 참조하세요.For more information, see Configure Windows Service Accounts and Permissions.

    인증 모드Authentication mode

  • SQL ServerSQL Server연결을 위해 Windows 인증이 필요합니다.Require Windows Authentication for connections to SQL ServerSQL Server.

  • Kerberos 인증 사용Use Kerberos authentication. 자세한 내용은 Kerberos 연결의 서비스 사용자 이름 등록을 참조하세요.For more information, see Register a Service Principal Name for Kerberos Connections.

    강력한 암호Strong passwords

  • sa 계정에는 항상 강력한 암호를 지정합니다.Always assign a strong password to the sa account.

  • 암호 강도 및 만료를 검사하는 암호 정책을 항상 사용하도록 설정합니다.Always enable password policy checking for password strength and expiration.

  • 모든 SQL ServerSQL Server 로그인에 대해 항상 강력한 암호를 사용합니다.Always use strong passwords for all SQL ServerSQL Server logins.

중요

SQL Server ExpressSQL Server Express 설치 중에 BUILTIN\Users 그룹에 대한 로그인이 추가됩니다.During setup of SQL Server ExpressSQL Server Express a login is added for the BUILTIN\Users group. 이 로그인을 사용하면 컴퓨터의 모든 인증된 사용자가 public 역할의 멤버로 SQL Server ExpressSQL Server Express 인스턴스에 액세스할 수 있습니다.This allows all authenticated users of the computer to access the instance of SQL Server ExpressSQL Server Express as a member of the public role. BUILTIN\Users 로그인은 개별 로그인이 있거나 로그인이 있는 기타 Windows 그룹의 멤버인 컴퓨터 사용자에 대한 데이터베이스 엔진Database Engine 액세스를 제한하기 위해 안전하게 제거할 수 있습니다.The BUILTIN\Users login can be safely removed to restrict 데이터베이스 엔진Database Engine access to computer users who have individual logins or are members of other Windows groups with logins.

관련 항목:See Also

SQL Server 설치를 위한 하드웨어 및 소프트웨어 요구 사항 Hardware and Software Requirements for Installing SQL Server
네트워크 프로토콜 및 네트워크 라이브러리 Network Protocols and Network Libraries
Kerberos 연결의 서비스 사용자 이름 등록Register a Service Principal Name for Kerberos Connections