程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> SqlServer數據庫 >> 關於SqlServer >> SQL Server 2014的原生備份加密新特性

SQL Server 2014的原生備份加密新特性

編輯:關於SqlServer

SQL Server 2014 CTP2之後公布了一項針對備份的特性,那就是原生備份加密。考慮到之前網絡上影響很壞的數據庫洩漏事件,本質上都是數據庫備份洩漏給第三方導致,SQL Server的原聲數據備份可以使得即使備份本身被盜,在沒有加密證書的情況下也無法使用,這有效的解決了上述數據洩漏問題。

原先的解決方案

在SQL Server 2014之前,如果希望實現對備份實現加密,會通過如下兩種方式之一實現:

使用透明數據加密(TDE)加密整個數據庫,從而使得備份和事務日志也會被加密

使用第三方備份加密工具

首先來談一下使用透明數據加密,如果僅僅是為了對備份加密,使用TDE有點過於大材小用,因為使用TDE會導致數據庫本身和日志被加密,對CPU帶來額外開銷,此外,使用TDE加密過的數據庫如果使用備份壓縮,壓縮比率會非常低。如果使用SQL Server 2014的原生備份加密,則無需對整個數據庫進行加密,備份僅僅在被寫入磁盤之前被加密。原聲備份加密如果結合備份壓縮功能,那麼會先進行壓縮,再加密,從而得到非常高的壓縮比率。

其次使用第三方備份加密工具需要額外的費用,並且在執行過程中也會有比較繁瑣的操作成本,使用第三方備份當需要對備份到Azure的備份進行加密時,將會非常繁瑣,而使用原生備份加密,可以直接對備份到Azure的備份進行加密,從而對OFF-SITE備份提供了額外的安全性。

使用原生數據加密

在SQL Server 2014 企業版、BI版、標准版中包括了該功能。使用備份加密需要有二個先決條件:

存在證書或非對稱密鑰

選擇備份加密算法

下面使用原聲數據加密對備份加密,首先建立證書:

CREATECERTIFICATE BackupCertificate
    
WITHSUBJECT = 'Backup Encryption Certificate';
    
GO

建立完成後,直接使用證書進行備份加密:

BACKUP DATABASETestBK TODISK ='C:\Test_Encrypted.bak'WITHCOMPRESSION, ENCRYPTION  (ALGORITHM = AES_256, SERVER CERTIFICATE = BackupCertificate);

結果如圖1所示,在圖1中,注意到SQL Server給出了提示信息要備份證書以及證書的私鑰,否則數據將無法使用。通常在最佳實踐中,當證書創建時就應該備份,數據安全永遠是第一位的。

clip_image002

圖1.提示備份證書私鑰

在圖1中,注意到備份指定的加密算法是AES_256算法。SQL Server 2014提供了4種對備份加密的算法,分別是AES128、AES196、AES256和三重DES算法。

在SQL Server 2014的Management Studio中也對原聲備份加密提供了GUI的支持,如圖2所示。

clip_image004

圖2.GUI對原生備份加密的GUI支持

原生加密備份對壓縮的影響

前文提到,使用原生備份加密可以使得備份壓縮幾乎不受加密的影響,下面備份一個2.5G左右的測試庫,指定壓縮備份,第一個例子僅使用壓縮備份,第2-4例子使用壓縮備份+不同的壓縮算法,測試語句如圖3所示。

clip_image006

圖3.測試語句

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved