近年來在網絡經常會看到一些網站的泄密事件,導致大量的用戶資料泄露,究其原因,很大程度上就在于數據庫備份文件被盜取造成的。
在SQL Server 2012之前的版本中,在Backup備份語句中,可以定義備份集密碼。使用密碼可以防止別人使用SQL Server工具在未經授權的情況下,執行數據庫還原操作。但是,這僅僅是給備份附加了一個密碼,并沒有對備份數據進行加密。TDE可以加密整個數據庫,當然也可以加密備份文件。不過單單使用TDE來加密備份文件,又顯得有些大材小用。
在SQL Server 2014中,如果使用SQL Server 2014的原生備份加密,則無需對整個數據庫進行加密,備份僅僅在被寫入磁盤之前加密。如果將原生備份加密功能和備份壓縮工相結合,可以先壓縮再加密,不僅可以保護備份文件安全而且可以減小備份文件體積,可謂一舉兩得。這里還以上述“Clientzl”數據庫為例,首先按照上述方法創建數據庫主密鑰,執行“CREATE CERTIFICATE ClientbkCert WITH SUBJECT = 'Backup Encryption Certificate'”,“Go”語句,創建所需的證書。注意,必須在Matser數據庫下創建證書。
執 行“B A C K U P CERTIFICATE ClientbkCert TO FILE = 'd:zhengshuClientzlCert.cer”,“Go”語句,將證書導出。執行“BACKUP DATABASE C l i e n t z l T O D I S K='C:dataClientzl_Encrypted.bak' WITH COMPRESSION, ENCRYPTION(ALGORITHM = AES_256,SERVER CERTIFICATE =ClientbkCert)”語句,就可以將數據庫備份進行加密處理。
在還原時,可以執行“USE master”,“RESTORE DATABASE Clientzl FROM DISK = 'C:dataClientzl_Encrypted.bak' WITH REPLACE”語句,就可以將其還原。如果在其他的SQL Server實例上進行還原,則必須按照上述方法將證書備份出來,然后在目標主機上執行導入證書操作,之后才可以執行數據庫還原操作。
實際對于使用SQL Server作為后臺數據的網站來說,如果網站代碼存在注入漏洞的話,黑客就會使用各種注入工具對其進行SQL注入攻擊,對于經驗豐富的黑客來說,甚至可以徒手進行注入攻擊。……