ALTER SERVICE MASTER KEY(Transact-SQL)ALTER SERVICE MASTER KEY (Transact-SQL)

적용 대상: 예SQL Server 아니요Azure SQL Database 아니요Azure Synapse Analytics(SQL DW) 아니요병렬 데이터 웨어하우스 APPLIES TO: YesSQL Server NoAzure SQL Database NoAzure Synapse Analytics (SQL DW) NoParallel Data Warehouse

SQL ServerSQL Server 인스턴스의 서비스 마스터 키를 변경합니다.Changes the service master key of an instance of SQL ServerSQL Server.

항목 링크 아이콘 Transact-SQL 구문 표기 규칙Topic link icon Transact-SQL Syntax Conventions

구문Syntax

  
ALTER SERVICE MASTER KEY   
    [ { <regenerate_option> | <recover_option> } ] [;]  
  
<regenerate_option> ::=  
    [ FORCE ] REGENERATE  
  
<recover_option> ::=  
    { WITH OLD_ACCOUNT = 'account_name' , OLD_PASSWORD = 'password' }  
    |      
    { WITH NEW_ACCOUNT = 'account_name' , NEW_PASSWORD = 'password' }  

인수Arguments

FORCEFORCE
데이터 손실 위험이 있는 경우에도 서비스 마스터 키가 다시 생성되어야 함을 나타냅니다.Indicates that the service master key should be regenerated, even at the risk of data loss. 자세한 내용은 이 항목 아래에서 SQL Server 서비스 계정 변경을 참조하세요.For more information, see Changing the SQL Server Service Account later in this topic.

REGENERATEREGENERATE
서비스 마스터 키를 다시 생성하도록 지정합니다.Indicates that the service master key should be regenerated.

OLD_ACCOUNT ='account_name'OLD_ACCOUNT ='account_name'
이전 Windows 서비스 계정 이름을 지정합니다.Specifies the name of the old Windows service account.

경고

이 옵션은 더 이상 사용되지 않으므로This option is obsolete. 사용하지 마십시오.Do not use. 대신 SQL ServerSQL Server 구성 관리자를 사용하십시오.Use SQL ServerSQL Server Configuration Manager instead.

OLD_PASSWORD ='password'OLD_PASSWORD ='password'
이전 Windows 서비스 계정의 암호를 지정합니다.Specifies the password of the old Windows service account.

경고

이 옵션은 더 이상 사용되지 않으므로This option is obsolete. 사용하지 마십시오.Do not use. 대신 SQL ServerSQL Server 구성 관리자를 사용하십시오.Use SQL ServerSQL Server Configuration Manager instead.

NEW_ACCOUNT ='account_name'NEW_ACCOUNT ='account_name'
새 Windows 서비스 계정 이름을 지정합니다.Specifies the name of the new Windows service account.

경고

이 옵션은 더 이상 사용되지 않으므로This option is obsolete. 사용하지 마십시오.Do not use. 대신 SQL ServerSQL Server 구성 관리자를 사용하십시오.Use SQL ServerSQL Server Configuration Manager instead.

NEW_PASSWORD ='password'NEW_PASSWORD ='password'
새 Windows 서비스 계정의 암호를 지정합니다.Specifies the password of the new Windows service account.

경고

이 옵션은 더 이상 사용되지 않으므로This option is obsolete. 사용하지 마십시오.Do not use. 대신 SQL ServerSQL Server 구성 관리자를 사용하십시오.Use SQL ServerSQL Server Configuration Manager instead.

설명Remarks

서비스 마스터 키는 연결된 서버 암호, 인증서 또는 데이터베이스 마스터 키를 처음으로 암호화할 필요가 있을 때 자동으로 생성됩니다.The service master key is automatically generated the first time it is needed to encrypt a linked server password, credential, or database master key. 서비스 마스터 키는 로컬 시스템 키 또는 Windows 데이터 보호 API를 사용하여 암호화됩니다.The service master key is encrypted using the local machine key or the Windows Data Protection API. 이 API는 SQL ServerSQL Server 서비스 계정의 Windows 자격 증명으로부터 파생된 키를 사용합니다.This API uses a key that is derived from the Windows credentials of the SQL ServerSQL Server service account.

SQL Server 2012(11.x)SQL Server 2012 (11.x) 에서는 AES 암호화 알고리즘을 사용하여 SMK(서비스 마스터 키) 및 DMK(데이터베이스 마스터 키)를 보호합니다.uses the AES encryption algorithm to protect the service master key (SMK) and the database master key (DMK). AES는 이전 버전에서 사용하는 3DES보다 최신 암호화 알고리즘입니다.AES is a newer encryption algorithm than 3DES used in earlier versions. 데이터베이스 엔진Database Engine 인스턴스를 SQL Server 2012(11.x)SQL Server 2012 (11.x) 로 업그레이드한 후 SMK와 DMK를 다시 생성해야 마스터 키가 AES로 업그레이드됩니다.After upgrading an instance of the 데이터베이스 엔진Database Engine to SQL Server 2012(11.x)SQL Server 2012 (11.x) the SMK and DMK should be regenerated in order to upgrade the master keys to AES. DMK를 다시 생성하는 방법은 ALTER MASTER KEY(Transact-SQL)를 참조하세요.For more information about regenerating the DMK, see ALTER MASTER KEY (Transact-SQL).

SQL Server 서비스 계정 변경Changing the SQL Server Service Account

SQL ServerSQL Server 서비스 계정을 변경하려면 SQL ServerSQL Server 구성 관리자를 사용합니다.To change the SQL ServerSQL Server service account, use SQL ServerSQL Server Configuration Manager. 서비스 계정 변경을 관리하기 위해 SQL ServerSQL ServerSQL ServerSQL Server 서비스 그룹에 부여된 필요한 사용 권한이 있는 컴퓨터 계정으로 보호되는 중복 서비스 마스터 키 복사본을 저장합니다.To manage a change of the service account, SQL ServerSQL Server stores a redundant copy of the service master key protected by the machine account that has the necessary permissions granted to the SQL ServerSQL Server service group. 컴퓨터를 다시 빌드하면 이전에 서비스 계정에 사용되던 것과 동일한 도메인 사용자가 서비스 마스터 키를 복구할 수 있습니다.If the computer is rebuilt, the same domain user that was previously used by the service account can recover the service master key. 로컬 계정이나 로컬 시스템, 로컬 서비스, 네트워크 서비스 계정에 대해서는 이 방법을 사용할 수 없습니다.This does not work with local accounts or the Local System, Local Service, or Network Service accounts. SQL ServerSQL Server를 다른 컴퓨터로 이동하는 경우 백업 및 복원을 사용하여 서비스 마스터 키를 마이그레이션하십시오.When you are moving SQL ServerSQL Server to another computer, migrate the service master key by using backup and restore.

REGENERATE 구는 서비스 마스터 키를 다시 생성합니다.The REGENERATE phrase regenerates the service master key. 서비스 마스터 키가 다시 생성되면 SQL ServerSQL Server는 이 키로 암호화된 모든 키의 암호를 해독한 다음 새로운 서비스 마스터 키로 키를 암호화합니다.When the service master key is regenerated, SQL ServerSQL Server decrypts all the keys that have been encrypted with it, and then encrypts them with the new service master key. 이 작업은 리소스 소비가 많습니다.This is a resource-intensive operation. 키가 손상된 경우가 아니면 이 작업은 사용량이 낮은 기간 동안에만 수행하도록 예약해야 합니다.You should schedule this operation during a period of low demand, unless the key has been compromised. 암호 해독 중 하나가 실패하면 전체 문이 실패합니다.If any one of the decryptions fail, the whole statement fails.

FORCE 옵션을 사용하면 프로세스에서 현재 마스터 키를 검색할 수 없거나 키로 암호화된 모든 프라이빗 키의 암호를 해독할 수 없는 경우에도 키 다시 생성 프로세스가 계속됩니다.The FORCE option causes the key regeneration process to continue even if the process cannot retrieve the current master key, or cannot decrypt all the private keys that are encrypted with it. 키를 다시 생성하지 못하고 RESTORE SERVICE MASTER KEY 문을 사용하여 서비스 마스터 키를 복원할 수 없는 경우에만 FORCE를 사용합니다.Use FORCE only if regeneration fails and you cannot restore the service master key by using the RESTORE SERVICE MASTER KEY statement.

주의

서비스 마스터 키는 SQL ServerSQL Server 암호화 계층의 루트입니다.The service master key is the root of the SQL ServerSQL Server encryption hierarchy. 서비스 마스터 키는 트리에 있는 모든 다른 키와 암호를 직접 또는 간접적으로 보호합니다.The service master key directly or indirectly protects all other keys and secrets in the tree. 강제 다시 생성 중에 종속된 키의 암호를 해독할 수 없는 경우 키가 보호하는 데이터가 손실됩니다.If a dependent key cannot be decrypted during a forced regeneration, the data the key secures will be lost.

SQL을 다른 머신으로 이동하는 경우 동일한 서비스 계정을 사용하여 SMK를 해독해야 하며 SQL Server에서 머신 계정 암호화를 자동으로 해결합니다.If you move SQL to another machine, then you have to use the same service account to decrypt the SMK - SQL Server will fix the Machine account encryption automatically.

사용 권한Permissions

서버에 대한 CONTROL SERVER 권한이 필요합니다.Requires CONTROL SERVER permission on the server.

Examples

다음 예에서는 서비스 마스터 키를 다시 생성합니다.The following example regenerates the service master key.

ALTER SERVICE MASTER KEY REGENERATE;  
GO  

참고 항목See Also

RESTORE SERVICE MASTER KEY (Transact-SQL) RESTORE SERVICE MASTER KEY (Transact-SQL)
BACKUP SERVICE MASTER KEY (Transact-SQL) BACKUP SERVICE MASTER KEY (Transact-SQL)
암호화 계층Encryption Hierarchy