隨著數據安全需求的不斷增加,不論以何種方式,都不要忽略對你的數據庫備份文件的安全保證。在本地的SQL Server備份中,備份文件中的數據是以普通文本格式存儲的,僅僅用文本編輯器就可以輕松閱讀。根據表中使用的數據類型,一些數據比另外的一些數據更容易查看。
試試這個你幾乎從來沒有進行過的試驗。對Northwind數據庫進行備份,或者任何其它小型數據庫,然後用任意的文本編輯器打開備份文件。你將會看到數據自身有一點難以理解,但是只要你看到存儲過程的注釋,然後通讀一下文件,你就會看到你的備份文件的真正價值所在。如果你采取行動,將用戶ID和/或密碼存儲在你的存儲過程中,首先這可不是一個好主意,這個數據現在就可以被任何能夠接觸到備份數據庫的人所訪問。如果你有其他藏有秘密信息的文本數據類型,你也會讓這些數據非常有意義了。
備份密碼
SQL Server中的一個選項就是創建用密碼創建備份。這是你在創建備份的時候可以使用的另一個選擇,但是在企業版管理器或者SQL Server管理套件中,並沒有提供這個選項。這裡是一個使用密碼選項備份的例子:
backup database northwind to disk=’c:northwind.bak’ with mediapassWord = ’Backup2006’
這個過程需要密碼來重新存儲文件,但是使用文本編輯器,這些數據仍然是可以訪問的。還有,重新存儲不能使用GUI來完成,所以它必須通過T-SQL重新存儲命令和密碼一起完成任務。
加密存儲過程
一種防止你的存儲過程被用於查看的方法就是在創建你的存儲過程的時候使用“帶加密”的選項。這樣的話,備份文件中的數據也是經過加密的了。要使用加密來創建一個存儲過程,如下所示:
createproceduredbo.testEncryption
withencryption
as
select*FROMproducts
加密數據
另一個選擇就是在你把數據存儲到你的數據庫表中的時候,對數據進行加密。在SQL Server 2000中沒有本地的方法來完成,但是有很多工具你可以使用:
針對SQL Server的NetLib Encryptionizer
使用XP_CRYPT加密SQL Server
SQL Server 2005中存在本地加密功能。看看微軟的文章<>如何:加密一列數據,那裡解釋了這個過程。在你加密了數據庫中的數據之後,當你創建備份的時候,數據仍然是經過加密的。
保證文件系統的安全
保衛你的備份文件的安全的另一個方法就是在你的服務器或者網絡中使用安全目錄。你可以限制訪問這個目錄的權限,這樣就只有一小部分受限制的人能夠訪問你的備份文件。通過在安全目錄上使用上述的技術,你就可以創建另一個級別的安全措施了。這仍然不會消除加密的需求,但是它提供了額外的安全措施。
直接備份到磁帶
備份的另一個選擇就是直接備份到磁帶上,以便在你的網絡中保證備份文件的安全。這種方法減少了對你的備份文件的不正當訪問的問題。用這種方式有一個大問題:我寫入的大部分關於備份的內容都是首先寫入磁盤的,以便在必要的時候能夠快速重新存儲,然後再為了長期的存儲而歸檔到磁帶上。這種方式消除了你的備份落入壞人之手的機會,但是,不幸的是,它讓其他的處理過程變得困難。
加密備份
如果你真的需要保證你的備份文件的安全,最好的方式就是在你創建備份文件的時候對其進行加密。不幸的是,SQL Server中沒有工具可以讓你完成這個任務,但是看看以下的產品,它們可以讓你創建各種級別的密碼和加密技術加密備份。
Idera的 SQLsafe
Quest的 SQL LiteSpeed
Red-Gate的 SQL Backup
有幾種不同的方式來保護你的數據庫備份文件,以及備份文件內容。查看你的數據庫,找出哪個數據庫有需要保護的信息或者代碼。然後實現一個或者幾種上述的技術來確保你的數據遠離圖謀不軌的眼睛。