使用一般的加密方法只能加密數(shù)據(jù)表中的某些字段。如果想對整個數(shù)據(jù)庫進行加密,就需要使用透明加密技術(TDE)。這是 SQL Server 2008 R2提供的新功能之一。因為如果MDF數(shù)據(jù)庫文件或備份文件被竊取,數(shù)據(jù)庫的安全就無從談起。透明加密運行在數(shù)據(jù)庫級別,對于用戶或者應用程序來說是透明的,猶如沒有加密一樣。加密和解密以數(shù)據(jù)庫的最小存儲單位(即頁級別)進行,由數(shù)據(jù)庫引擎實時加以執(zhí)行。在數(shù)據(jù)寫入時加密,在讀取時解密。
TDE執(zhí)行數(shù)據(jù)和日志文件的實時I/O加解密,當數(shù)據(jù)庫文件被盜后,別人因為不知道密鑰的情況下,是無法恢復或者附加數(shù)據(jù)庫的。透明數(shù)據(jù)加密使用數(shù)據(jù)加密密鑰(DEK)進行加密,DEK保存在Master數(shù)據(jù)庫中并且由服務主密鑰加以保護。其使用步驟是先創(chuàng)建主密鑰,之后創(chuàng)建或獲取由主密鑰保護的證書,創(chuàng)建數(shù)據(jù)庫加密密鑰,并使用證書保護該密鑰,最后將數(shù)據(jù)庫設置為使用加密狀態(tài)。
對于透明加密來說,會對整個數(shù)據(jù)庫進行加密,包括對備份文件也進行了加密。而對于應用程序來說,不會受到加密和解密的任何影響,例如索引和數(shù)據(jù)類型不受影響,也不需要調(diào)用任何加解密函數(shù)等。當然,使用透明加密會對SQL Server性能有一定的影響,透明加密和壓縮備份無法同時使用,當移動受到透明加密保護的數(shù)據(jù)庫時,必須同時移動相關的證書或者非對稱密鑰。例如,當需要對名為“Clientzl”的數(shù)據(jù)庫進行透明加密時, 執(zhí) 行“USE master”,“GO”,“CREATE MASTER KEY ENCRYPTION BY PASSWORD ='Passw0rd'”語句,來創(chuàng)建數(shù)據(jù)庫主密鑰。執(zhí)行……