建立加密備份

適用於:SQL Server

本文說明使用 Transact-SQL 建立加密備份所需的步驟。 如需使用 SQL Server Management Studio 的範例,請參閱建立完整資料庫備份

警告

若要還原加密的資料庫,您必須能夠存取用來加密該資料庫的憑證或非對稱金鑰。 如果沒有此憑證或非對稱金鑰,您就無法還原該資料庫。 如果您需要儲存備份,請儲存用來加密資料庫加密金鑰的憑證。 如需詳細資訊,請參閱 SQL Server Certificates and Asymmetric Keys

必要條件

  • 加密備份的儲存體。 視您選擇的選項而定,下列其中一個選項:

    • 用以建立資料庫備份的本機磁碟或具有足用空間的儲存體。
    • Azure 儲存體帳戶和容器。 如需詳細資訊,請參閱建立儲存體帳戶
  • master 資料庫的資料庫主要金鑰,以及 SQL Server 執行個體的憑證或非對稱金鑰。 如需加密需求及權限的資訊,請參閱備份加密

建立資料庫主要金鑰 (DMK)

選擇密碼以加密即將儲存於資料庫的 DMK 副本。 連接到 Database Engine,再啟動新的查詢視窗,將下列範例複製並貼到新的查詢視窗中,然後選取執行

以強式密碼取代 <master key password>,並確定您已同時將 DMK 和密碼的副本保存在安全的位置。

USE master;
GO

CREATE MASTER KEY ENCRYPTION BY PASSWORD = '<master key password>';
GO

建立備份憑證

master 資料庫中建立備份憑證。 複製下列範例並將其貼到查詢視窗中,然後選取 [執行]。

Use master;
GO

CREATE CERTIFICATE MyTestDBBackupEncryptCert
    WITH SUBJECT = 'MyTestDB Backup Encryption Certificate';
GO

備份有加密功能的資料庫

建立加密備份有兩個主要選項:

  • 備份到磁碟
  • 備份至 Azure 儲存體

使用下列步驟建立要存放到本機磁碟的資料庫加密備份。 此範例會使用稱為 MyTestDB 的使用者資料庫。

指定要使用的加密演算法與憑證。 複製下列範例並將其貼到查詢視窗中,然後選取 [執行]。

取代 <path_to_local_backup> 為 SQL Server 有權限寫入的本機路徑。 例如,路徑可能是 D:\SQLBackup

BACKUP DATABASE [MyTestDB]
TO DISK = N'<path_to_local_backup>\MyTestDB.bak'
WITH
COMPRESSION,
ENCRYPTION (
    ALGORITHM = AES_256,
    SERVER CERTIFICATE = MyTestDBBackupEncryptCert
),
STATS = 10;
GO

如需加密受可延伸金鑰管理 (EKM) 保護之備份的範例,請參閱使用 Azure Key Vault 進行可延伸金鑰管理 (SQL Server)