建立加密的備份
適用于:SQL Server
本主題說明使用 Transact-SQL 建立加密備份所需的步驟。 如需使用 SQL Server Management Studio 的範例,請參閱建立完整資料庫備份 (SQL Server) 。
使用加密備份到磁碟
必要條件:
必須能夠存取用以建立資料庫備份的本機磁碟或具有足用空間的儲存體。
主要資料庫的資料庫主要金鑰,以及 SQL Server 執行個體所提供的憑證或非對稱金鑰。 如需加密需求及權限的資訊,請參閱 備份加密。
使用下列步驟建立要存放到本機磁碟的資料庫加密備份。 此範例會使用稱為 MyTestDB 的使用者資料庫。
建立 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
建立備份憑證: 在 master 資料庫中建立備份憑證。 將下列範例複製並貼入查詢視窗中,然後按一下 [執行]
Use Master GO CREATE CERTIFICATE MyTestDBBackupEncryptCert WITH SUBJECT = 'MyTestDB Backup Encryption Certificate'; GO
備份資料庫: 指定要使用的加密演算法與憑證。 複製下列範例並將其貼到查詢視窗中,然後按一下 [執行] 。
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 金鑰保存庫 (SQL Server) 進行可延伸金鑰管理。
將儲存到 Azure 儲存體的備份加密
如果使用 [SQL Server 備份至 URL] 選項建立要儲存到 Azure 儲存體的備份,其加密步驟完全相同,但您必須使用 URL 作為目的地,並使用 SQL 認證向 Azure 儲存體進行驗證。 如果您想要使用加密選項設定SQL Server受控備份至 Microsoft Azure,請參閱啟用SQL Server受控備份至 Microsoft Azure。
必要條件:
Windows 儲存體帳戶和容器。 如需詳細資訊,請參閱。 第 1 課:建立 Azure 儲存體物件。
master 資料庫的資料庫主要金鑰,以及 SQL Server 實例上的憑證或非對稱金鑰。 如需加密需求及權限的資訊,請參閱 備份加密。
建立 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
建立資料庫主要金鑰: 選擇密碼以加密即將儲存於資料庫的主要金鑰副本。 連接到 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
建立備份憑證: 在 master 資料庫中建立備份憑證。 複製下列範例,並將其貼到查詢視窗中,然後按一下 [執行] 。
USE Master; GO CREATE CERTIFICATE MyTestDBBackupEncryptCert WITH SUBJECT = 'MyTestDBBackupEncryptCert '; GO
備份資料庫: 指定要使用的加密演算法與憑證。 複製下列範例並將其貼到查詢視窗中,然後按一下 [執行] 。
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