本主題提供 SQL Server 備份加密選項的概觀。 其中包含備份期間加密的使用方式、優點和建議做法的詳細數據。
概觀
從 SQL Server 2014 開始,SQL Server 能夠在建立備份時加密數據。 藉由在建立備份時指定加密演算法和加密程式(憑證或非對稱密鑰),您可以建立加密的備份檔。 所有儲存存放位置:支援內部部署和 Windows Azure 儲存。 此外,可以針對 SQL Server 受控備份到 Microsoft Azure 的作業設定加密選項,這是 SQL Server 2014 中引進的新功能。
若要在備份期間加密,您必須指定加密演算法和加密程式來保護加密密鑰。 以下是支援的加密選項:
加密演算法: 支援的加密演算法包括:AES 128、AES 192、AES 256 和 Triple DES
加密程式: 憑證或非對稱金鑰
謹慎
備份憑證或非對稱密鑰非常重要,最好與用來加密的備份檔不同的位置。 如果沒有憑證或非對稱密鑰,您無法還原備份,轉譯備份檔無法使用。
還原加密備份: SQL Server 還原不需要在還原期間指定任何加密參數。 它確實要求用於加密備份文件的憑證或非對稱密鑰,在您還原的實例上必須可用。 執行還原的用戶帳戶必須具有 VIEW DEFINITION 憑證或密鑰的許可權。 如果您要將加密備份還原至不同的實例,您必須確定該實例上有可用的憑證。
如果您要從 TDE 加密資料庫還原備份,您應該會在您要還原的實例上使用 TDE 憑證。
優點
加密資料庫備份有助於保護數據:SQL Server 提供在建立備份時加密備份數據的選項。
加密也可用於使用 TDE 加密的資料庫。
SQL Server Managed Backup to Microsoft Azure 支援加密,為異地備份提供額外的安全性。
此功能支援最多 AES 256 位的多個加密演算法。 這可讓您選擇符合您需求的演算法。
您可以將加密金鑰與擴充金鑰管理 (EKM) 提供者整合。
先決條件
以下是加密備份的必要條件:
建立 master 資料庫的資料庫主要密鑰: 資料庫主要金鑰是對稱金鑰,用來保護資料庫中存在的憑證和非對稱密鑰的私鑰。 如需詳細資訊,請參閱 SQL Server 和資料庫加密密鑰 (Database Engine)。
建立憑證或非對稱金鑰,以用於備份加密。 如需建立憑證的詳細資訊,請參閱 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 無法讀取加密備份。
加密備份不支援附加至現有的備份集選項。
權限
若要加密備份或從加密備份還原:
VIEW DEFINITION 用來加密資料庫備份之憑證或非對稱密鑰的許可權。
備註
不需要存取 TDE 憑證,即可備份或還原受 TDE 保護的資料庫。
備份加密方法
下列各節提供在備份期間加密數據的步驟簡介。 如需使用 Transact-SQL 加密備份之不同步驟的完整逐步解說,請參閱 建立加密備份。
使用 SQL Server Management Studio
您可以在下列任一對話框中建立資料庫的備份時加密備份:
備份資料庫 (備份選項頁面) 在 [ 備份選項] 頁面上,您可以選取 [ 加密],並指定要用於加密的加密演演算法和憑證或非對稱密鑰。
使用維護計劃精靈當您選取備份工作時,您可以在 [定義備份()工作] 頁面的 [選項] 索引標籤上,選取 [備份加密],並指定加密演算法和用於加密的憑證或密鑰。
使用 Transact SQL
以下是用來加密備份檔的範例 Transact-SQL 語句:
BACKUP DATABASE [MYTestDB]
TO DISK = N'C:\Program Files\Microsoft SQL Server\MSSQL12.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 "MyTestDB" -BackupFile "MyTestDB.bak" -CompressionOption On -EncryptionOption $encryptionOption
建議的做法
建立加密憑證和金鑰的備份至安裝實例所在本機計算機以外的位置。 若要考慮災害復原案例,請考慮將憑證或密鑰的備份儲存至異地位置。 您無法在沒有用來加密備份的憑證的情況下還原加密備份。
若要還原加密備份,您需在還原的實例上提供當初進行備份時所使用的、具相符指紋的原始加密憑證。 因此,憑證不應以任何方式在到期或變更時更新。 更新可能會導致更新憑證,而觸發指紋變更,因此讓憑證對備份文件無效。 執行還原的帳戶應該具有憑證的 VIEW DEFINITION 許可權,或備份期間用來加密的非對稱密鑰。
可用性群組資料庫備份通常會在慣用的備份複本上執行。 如果在不同於取得備份的副本上還原備份,請確保用於備份的原始憑證在您要還原的副本上可用。
如果資料庫已啟用 TDE,請選擇不同的憑證或非對稱金鑰來加密資料庫和備份,以提高安全性。
相關工作
| 主題/工作 | 說明 |
|---|---|
| 建立加密備份 | 描述建立加密備份所需的基本步驟 |
| SQL Server 受控備份至 Azure - 保留和記憶體設定 | 說明使用指定的加密選項,將 SQL Server 受控備份設定為Microsoft Azure 所需的基本步驟。 |
| 使用 Azure Key Vault 進行可延伸的密鑰管理 (SQL Server) | 提供在 Azure Key Vault 中建立受金鑰保護的加密備份範例。 |