BACKUP MASTER KEY (Transact-SQL)

適用於:SQL Server

匯出資料庫主要金鑰。

重要

SQL Server 2022 (16.x) 導入了將資料庫主要金鑰備份到 Azure Blob 儲存體及從中還原的支援。 URL 語法僅適用於 SQL Server 2022 (16.x) 和更新版本。

Transact-SQL 語法慣例

Syntax

BACKUP MASTER KEY TO 
  {
    FILE = 'path_to_file'
  | URL = 'Azure Blob storage URL'
  }   
    ENCRYPTION BY PASSWORD = 'password'  

注意

若要檢視 SQL Server 2014 (12.x) 和舊版的 Transact-SQL 語法,請參閱 舊版檔

引數

FILE ='path_to_file'
指定要作為主要金鑰匯出目的地之檔案的完整路徑,包括檔案名稱。 此路徑可以是本機路徑或是通往網路位置的 UNC 路徑。

URL ='Azure Blob 儲存體 URL'
適用於:SQL Server 2022 (16.x) 和更新版本
這是 Azure Blob 儲存體的 URL,其格式類似 https://<storage_account_name>.blob.core.windows.net/<storage_container_name>/<backup_file_name>.bak

ENCRYPTION BY PASSWORD ='password'
這是用來加密檔案中之主要金鑰的密碼。 這個密碼必須遵守複雜性檢查。 如需詳細資訊,請參閱< Password Policy>。

備註

主要金鑰必須是開放的,因此備份之前會先解密。 如果是利用服務主要金鑰來加密主要金鑰,則不必明確開放主要金鑰。 不過,如果只利用密碼加密主要金鑰,則必須明確開啟主要金鑰。

請在建立主要金鑰後立即予以備份,然後將該備份儲存在安全的異地位置。

向 Azure Blob 儲存體進行驗證

適用於:SQL Server 2022 (16.x) 和更新版本。

若要將資料庫主要金鑰備份至 Azure Blob 儲存體,須滿足下列必要條件:

  1. 擁有 Azure 儲存體帳戶

  2. 建立預存存取原則和共用存取儲存體

  3. 使用共用存取簽章建立 SQL Server 認證

    如需詳細資訊,請參閱教學課程:使用 Azure Blob 儲存體搭配 SQL Server

權限

需要資料庫的 CONTROL 權限。

範例

下列範例會建立 AdventureWorks2022 主要金鑰的備份並儲存在檔案。 因為這個主要金鑰並非利用服務主要金鑰加密,所以開放時必須指定密碼。

USE AdventureWorks2022;  
OPEN MASTER KEY DECRYPTION BY PASSWORD = 'sfj5300osdVdgwdfkli7';  
BACKUP MASTER KEY TO FILE = 'c:\temp\AdventureWorks2022_master_key'   
    ENCRYPTION BY PASSWORD = 'sd092735kjn$&adsg';  
GO   

下列範例會建立 AdventureWorks2022 主要金鑰的備份並儲存在 Azure Blob 儲存體。 因為這個主要金鑰並非利用服務主要金鑰加密,所以開放時必須指定密碼。

USE AdventureWorks2022;  
OPEN MASTER KEY DECRYPTION BY PASSWORD = 'sfj5300osdVdgwdfkli7';  
BACKUP MASTER KEY TO URL = 'https://mydocsteststorage.blob.core.windows.net/mytestcontainer/AdventureWorks2022_master_key.bak'  
    ENCRYPTION BY PASSWORD = 'sd092735kjn$&adsg';  
GO   

另請參閱

CREATE MASTER KEY (Transact-SQL)
OPEN MASTER KEY (Transact-SQL)
CLOSE MASTER KEY (Transact-SQL)
RESTORE MASTER KEY (Transact-SQL)
ALTER MASTER KEY (Transact-SQL)
DROP MASTER KEY (Transact-SQL)
加密階層
BACKUP SYMMETRIC KEY