備份加密

適用於:SQL Server

這篇文章提供 SQL Server 備份的加密選項概觀。 內容包括在備份期間加密的用法、益處和建議做法等詳細資料。

概觀

從 SQL Server 2014 (12.x) 開始,SQL Server 即擁有在建立備份時加密資料的能力。 在建立備份時透過指定加密演算法及加密程式 (憑證或非對稱金鑰),即可建立加密的備份檔案。 所有儲存目的地:支援內部部署及 Azure 儲存體。 此外,您也可以針對 SQL Server 受控備份至 Microsoft Azure 作業設定加密選項,這是 SQL Server 2014 (12.x) 中引進的新功能。

若要在備份期間加密,您必須指定加密演算法以及確保加密金鑰的加密程式。 以下為支援的加密選項:

  • 加密演算法: 支援的加密演算法包括:AES 128、AES 192、AES 256 和 Triple DES

  • 加密程式: 憑證或非對稱金鑰

警告

備份憑證或非對稱金鑰是非常重要的,而且最好與其用以加密的備份檔案存放於不同位置。 若沒有憑證或非對稱金鑰,您將無法還原備份,而此備份檔案將無法使用。 儲存在自主系統資料庫中的憑證也應該備份。

從加密備份還原:在還原期間,SQL Server 還原不要求指定任何加密參數。 但它要求用以加密備份檔案的憑證或非對稱金鑰可用於您要進行還原的執行個體上。 執行還原的使用者帳戶必須擁有憑證或金鑰的 VIEW DEFINITION 權限。 若您要將加密的備份還原到不同的執行個體,您必須確定憑證可用於該執行個體上。
將加密的資料庫還原到新位置的順序是:

  1. 在舊資料庫中 BACKUP CERTIFICATE (Transact-SQL)
  2. 在新位置 master 資料庫中的 CREATE MASTER KEY (Transact-SQL)
  3. 從匯入到新伺服器上某個位置的舊資料庫備份憑證 CREATE CERTIFICATE (Transact-SQL)
  4. 將資料庫還原到新位置 (SQL Server)

若您要從 TDE 加密資料庫中還原備份,TDE 憑證需可用於您要進行還原的執行個體上。 如需詳細資訊,請參閱將 TDE 保護的資料庫移至另一個 SQL Server

優點

  1. 加密資料庫備份能幫助您確保資料的安全:SQL Server 提供建立備份時加密備份資料的選項。

  2. 加密亦可用於使用 TDE 加密的資料庫。

  3. 由 SQL Server 受控備份至 Microsoft Azure 所完成的備份支援加密,可為異地備份提供額外安全性。

  4. 此功能支援最高 AES 256 位元的多個加密演算法。 如此可提供您選項,選取符合您需求的演算法。

  5. 您可以將加密金鑰與可延伸金鑰管理 (EKM) 提供者整合。

必要條件

下列為加密備份的必要條件:

  1. 建立 master 資料庫的資料庫主要金鑰:資料庫主要金鑰 (DMK) 是一個用來保護資料庫中憑證之私密金鑰和非對稱金鑰的對稱金鑰。 如需詳細資訊,請參閱 SQL Server 和資料庫加密金鑰 (資料庫引擎)

  2. 建立用來備份加密的憑證或非對稱金鑰。 如需建立憑證的詳細資訊,請參閱 CREATE CERTIFICATE (Transact-SQL)。 如需建立非對稱金鑰的詳細資訊,請參閱 CREATE ASYMMETRIC KEY (Transact-SQL)

    重要

    僅支援位於可延伸金鑰管理 (EKM) 的非對稱金鑰。

限制

下列為適用於加密選項的限制:

  • 若您使用非對稱金鑰加密備份資料,則僅支援位於 EKM 提供者的非對稱金鑰。

  • SQL Server Express 和 SQL Server Web 不支援備份期間加密。 但是可支援從加密的備份還原到 SQL Server Express 或 SQL Server Web 的執行個體。

  • 舊版 SQL Server 無法讀取加密的備份。

  • 加密備份不支援附加至現有備份組的選項。

權限

在加密的資料庫上執行備份作業的帳戶需要特定的權限。

  • 要備份的資料庫上的 db_backupoperator 資料庫層級角色。 無論加密為何,都需要此項。

  • VIEW DEFINITION 資料庫中憑證的 master 權限。

    下列範例會授與適當的憑證權限。

    USE [master]
    GO
    GRANT VIEW DEFINITION ON CERTIFICATE::[<SERVER_CERT>] TO [<db_account>]
    GO
    

注意

備份或還原 TDE 所保護的資料庫並不需要存取 TDE 憑證。

備份加密方式

下列章節將簡單介紹在備份期間加密資料的步驟。 如需有關使用 Transact-SQL 加密備份之不同步驟的完整逐步解說,請參閱 建立加密的備份

使用 SQL Server Management Studio

在下列任一對話方塊中建立資料庫備份時,您可以加密備份:

  1. 備份資料庫 (備份選項頁面):您可以在 [備份選項] 頁面選取 [加密],並指定用於加密的加密演算法以及憑證或非對稱金鑰。

  2. 使用維護計畫精靈:當您選取備份工作時,您可以在 [Define Backup ()Task (定義備份 () 工作)] 頁面的 [選項] 索引標籤上,選取 [備份加密],並指定用於加密的加密演算法以及憑證或金鑰。

使用 Transact-SQL

下列為加密備份檔案的範例 Transact-SQL 陳述式:

BACKUP DATABASE [MYTestDB]
TO DISK = N'C:\Program Files\Microsoft SQL Server\MSSQL13.MSSQLSERVER\MSSQL\Backup\MyTestDB.bak'
WITH
  COMPRESSION,
  ENCRYPTION
   (
   ALGORITHM = AES_256,
   SERVER CERTIFICATE = BackupEncryptCert
   ),
  STATS = 10
GO

如需完整 Transact-SQL 陳述式的語法,請參閱 BACKUP (Transact-SQL)

使用 PowerShell

此範例會建立加密選項,然後將它當作 Backup-SqlDatabase Cmdlet 的參數值使用,以建立加密備份。

$encryptionOption = New-SqlBackupEncryptionOption -Algorithm Aes256 -EncryptorType ServerCertificate -EncryptorName "BackupCert"

Backup-SqlDatabase -ServerInstance . -Database "<myDatabase>" -BackupFile "<myDatabase>.bak" -CompressionOption On -EncryptionOption $encryptionOption

建立加密憑證和金鑰的備份至您安裝執行個體的本機電腦以外的位置。 若考量到損毀復原狀況,請考慮將憑證或金鑰的備份儲存至異地位置。 若沒有用來加密此備份的憑證,您就無法還原加密的備份。

若要還原加密的備份,在相符的指模取得備份時所使用的原始憑證,應可用於您要進行還原的執行個體上。 因此,憑證不應該更新到期日或做其他任何的變更。 更新會導致觸發指模變更的憑證更新,而使憑證對備份檔案無效。 執行還原的帳戶應擁有備份時用以加密之憑證或非對稱金鑰的 VIEW DEFINITION 權限。

可用性群組資料庫備份通常會在慣用的備份複本上執行。 如果您不是在當初取得備份的複本上還原備份,請確定用於備份的原始憑證可在您要還原的目標複本上使用。

若資料庫已啟用 TDE,在加密資料庫和備份時請分別選擇不同的憑證或非對稱金鑰,以提升安全性。