建立加密的備份

適用於:SQL Server

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

使用加密備份到磁碟

必要條件:

  • 必須能夠存取用以建立資料庫備份的本機磁碟或具有足用空間的儲存體。

  • 主要資料庫的資料庫主要金鑰,以及 SQL Server 執行個體所提供的憑證或非對稱金鑰。 如需加密需求及權限的資訊,請參閱 備份加密

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

  1. 建立 master 資料庫的資料庫主要金鑰: 選擇密碼以加密即將儲存於資料庫的主要金鑰副本。 連接到 Database Engine,再啟動新的查詢視窗,將下列範例複製並貼到新的查詢視窗中,然後按一下 [執行] 。

    -- Creates a database master key.   
    -- The key is encrypted using the password "<master key password>"  
    USE master;  
    GO  
    CREATE MASTER KEY ENCRYPTION BY PASSWORD = '<master key password>';  
    GO  
    
    
  2. 建立備份憑證: 在 master 資料庫中建立備份憑證。 將下列範例複製並貼入查詢視窗中,然後按一下 [執行]

    Use Master  
    GO  
    CREATE CERTIFICATE MyTestDBBackupEncryptCert  
       WITH SUBJECT = 'MyTestDB Backup Encryption Certificate';  
    GO  
    
    
  3. 備份資料庫: 指定要使用的加密演算法與憑證。 複製下列範例並將其貼到查詢視窗中,然後按一下 [執行]

    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 = MyTestDBBackupEncryptCert  
       ),  
      STATS = 10  
    GO
    

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

將儲存到 Azure 儲存體的備份加密

如果使用 [SQL Server 備份至 URL] 選項建立要儲存到 Azure 儲存體的備份,其加密步驟完全相同,但您必須使用 URL 作為目的地,並使用 SQL 認證向 Azure 儲存體進行驗證。 如果您要將 SQL Server 受控備份至 Microsoft Azure 設定成使用加密選項,請參閱啟用 SQL Server 受控備份至 Microsoft Azure

必要條件:

  • Windows 儲存體帳戶和容器。 如需詳細資訊,請參閱。 第 1 課:建立 Azure 儲存體物件

  • 主要資料庫的資料主要金鑰,以及 SQL Server 執行個體的憑證或非對稱金鑰。 如需加密需求及權限的資訊,請參閱 備份加密

  1. 建立 SQL Server 認證: 若要建立 SQL Server 認證,請連線到 Database Engine、開啟新的查詢視窗、複製並貼上下列範例,然後按一下 [執行] 。

    CREATE CREDENTIAL mycredential   
    WITH IDENTITY= 'mystorageaccount' - this is the name of the storage account you specified when creating a storage account    
    , SECRET = '<storage account access key>' - this should be either the Primary or Secondary Access Key for the storage account  
    
  2. 建立資料庫主要金鑰: 選擇密碼以加密即將儲存於資料庫的主要金鑰副本。 連接到 Database Engine,再啟動新的查詢視窗,將下列範例複製並貼到新的查詢視窗中,然後按一下 [執行] 。

    -- Creates a database master key.  
    -- The key is encrypted using the password "<master key password>"  
    USE Master;  
    GO  
    CREATE MASTER KEY ENCRYPTION BY PASSWORD = '<master key password>';  
    GO  
    
    
  3. 建立備份憑證: 在 master 資料庫中建立備份憑證。 複製下列範例,並將其貼到查詢視窗中,然後按一下 [執行] 。

    USE Master;  
    GO  
    CREATE CERTIFICATE MyTestDBBackupEncryptCert  
       WITH SUBJECT = 'MyTestDBBackupEncryptCert ';  
    GO  
    
    
  4. 備份資料庫: 指定要使用的加密演算法與憑證。 複製下列範例並將其貼到查詢視窗中,然後按一下 [執行]

    BACKUP DATABASE [MyTestDB]  
    TO URL = N'C:\Program Files\Microsoft SQL Server\MSSQL13.MSSQLSERVER\MSSQL\Backup\MyTestDB.bak'  
    WITH  
      CREDENTIAL 'mycredential' - this is the name of the credential created in the first step.  
      ,COMPRESSION  
      ,ENCRYPTION   
       (  
       ALGORITHM = AES_256,  
       SERVER CERTIFICATE = MyTestDBBackupEncryptCert  
       ),  
      STATS = 10  
    GO