RESTORE MASTER KEY(Transact-SQL)

적용 대상:SQL Server

백업 파일로부터 데이터베이스 마스터 키를 가져옵니다.

중요

SQL Server 2022(16.x)에서는 Azure Blob Storage 간에 데이터베이스 마스터 키에 대한 백업 및 복원 지원이 도입되었습니다. URL 구문은 SQL Server 2022(16.x) 이상에서만 사용할 수 있습니다.

Transact-SQL 구문 표기 규칙

Syntax

RESTORE MASTER KEY FROM 
  {
    FILE = 'path_to_file'
  | URL = 'Azure Blob storage URL'
  }  
    DECRYPTION BY PASSWORD = 'password'  
    ENCRYPTION BY PASSWORD = 'password'  
    [ FORCE ]  

참고 항목

SQL Server 2014(12.x) 및 이전 버전에 대한 Transact-SQL 구문을 보려면 이전 버전 설명서를 참조 하세요.

인수

FILE ='path_to_file'
저장된 데이터베이스 마스터 키에 대해 파일 이름을 포함한 전체 경로를 지정합니다. path_to_file은 로컬 경로 또는 네트워크 위치에 대한 UNC 경로일 수 있습니다.

URL ='Azure Blob storage URL'
적용 대상: SQL Server 2022(16.x) 이상
Azure Blob Storage의 URL로, https://<storage_account_name>.blob.core.windows.net/<storage_container_name>/<backup_file_name>.bak과 비슷한 형식을 사용합니다.

DECRYPTION BY PASSWORD ='password'
파일로부터 가져올 데이터베이스 마스터 키의 암호를 해독하는 데 필요한 암호를 지정합니다.

ENCRYPTION BY PASSWORD ='password'
데이터베이스 마스터 키를 데이터베이스에 로드한 다음 암호화하는 데 사용되는 암호를 지정합니다.

FORCE
현재 데이터베이스 마스터 키가 열려 있지 않거나 SQL Server가 이 키로 암호화된 일부 프라이빗 키의 암호를 해독할 수 없는 경우에도 RESTORE 프로세스가 계속되도록 지정합니다.

설명

마스터 키가 복원되면 SQL Server 는 현재 사용 중인 마스터 키로 암호화된 모든 키의 암호를 해독한 다음 복원된 마스터 키를 사용하여 이러한 키를 암호화합니다. 이 리소스를 많이 사용하는 작업은 사용량이 낮은 기간 동안에만 수행하도록 예약해야 합니다. 현재 데이터베이스 마스터 키가 열려 있지 않거나 열 수 없는 경우 또는 이 키를 사용하여 암호화된 일부 키의 암호를 해독할 수 없는 경우 복원 작업이 실패합니다.

마스터 키를 검색할 수 없거나 암호 해독에 실패한 경우에만 FORCE 옵션을 사용합니다. 검색할 수 없는 키로 암호화된 정보는 손실됩니다.

서비스 마스터 키로 마스터 키가 암호화된 경우 복원된 마스터 키는 서비스 마스터 키로도 암호화할 수 있습니다.

현재 데이터베이스에 마스터 키가 없는 경우 RESTORE MASTER KEY가 마스터 키를 만듭니다. 새 마스터 키는 서비스 마스터 키로 자동으로 암호화되지 않습니다.

SQL Server 2022(16.x) 이상을 사용하고 데이터베이스 마스터 키를 Azure Blob Storage에서 복원하려는 경우 다음 필수 구성 요소가 적용됩니다.

  1. Azure Storage 계정이 있습니다.

  2. 저장된 액세스 정책 및 공유 액세스 스토리지를 만듭니다.

  3. 공유 액세스 서명을 사용하여 SQL Server 자격 증명을 만듭니다.

    자세한 내용은 자습서: SQL Server와 함께 Azure Blob Storage 사용을 참조하세요.

사용 권한

데이터베이스에 대한 CONTROL 권한이 필요합니다.

예제

다음 예에서는 파일에서 AdventureWorks2022 데이터베이스의 데이터베이스 마스터 키를 복원합니다.

USE AdventureWorks2022;  
RESTORE MASTER KEY   
    FROM FILE = 'c:\backups\keys\AdventureWorks2022_master_key'   
    DECRYPTION BY PASSWORD = '3dH85Hhk003#GHkf02597gheij04'   
    ENCRYPTION BY PASSWORD = '259087M#MyjkFkjhywiyedfgGDFD';  
GO  

다음 예에서는 Azure Blob Storage에서 AdventureWorks2022 데이터베이스의 데이터베이스 마스터 키를 복원합니다.

USE AdventureWorks2022;  
RESTORE MASTER KEY   
    FROM URL = 'https://mydocsteststorage.blob.core.windows.net/mytestcontainer/AdventureWorks2022_master_key.bak'   
    DECRYPTION BY PASSWORD = '3dH85Hhk003#GHkf02597gheij04'   
    ENCRYPTION BY PASSWORD = '259087M#MyjkFkjhywiyedfgGDFD';  
GO  

참고 항목

CREATE MASTER KEY(Transact-SQL)
ALTER MASTER KEY(Transact-SQL)
암호화 계층
RESTORE SYMMETRIC KEY