2011-08-17 128 views
0

什麼是加密SQL 2005數據庫的最佳方式?SQL 2005安全最佳實踐

我已經發現了有關SQL 2008的內容,並且我已經看到了如何在SQL 2005中執行列加密 - 但是訪問表值的操作似乎更加困難,因爲您需要創建一個函數或視圖/存儲過程。

我也嘗試通過使用Windows加密(通過證書)來加密文件夾,其中包含數據庫文件,但隨後SQL Server Management Studio在權限上給我提供了錯誤(即使授予了權限後) 。

我需要在我們的服務器上保護客戶端數據,我需要以不會讓服務器速度過慢的方式來完成,但我知道這是不可避免的,因爲加密帶來的額外層數。

我錯過了什麼,或者我錯了嗎?請指教。

回答

1

升級到SQL Server 2008,並使用Transparent Database Encryption。與SQL Server 2005的列級加密不同,2008 TDE正如其名稱所暗示的那樣是透明的。不需要更改應用程序。此外,數據是可搜索的,這是始終可取的,但是使用列加密或客戶端加密很難實現。

文件級加密不能真正與SQL Server一起使用。但是,BitLocker可以與SQL Server一起使用,因此使用BitLocker加密整個卷是另一種可行的選擇。

+0

升級到2008年是一個明顯的答案,如果可以的話,我會這樣做。 TDE將是理想的,但該項目沒有預算更新到2008年。另一方面,我將調查BitLocker並瞭解我能做些什麼。 – alexpwalsh

0

如果您不想讓服務器變慢,您可以使用客戶端即時加密和解密數據來處理它。以序列化和/或加密方式將數據存儲在數據庫中。網上有很多這種東西的例子。

爲您的數據創建一個包裝,像這樣:

Wrap(
Zip (
    Base64 Encode (
    Encrypt (
     Serialize(
      DATA 
     ) 
    ) 
) 
) 
) 

然後,

StoreInDB(
    WrappedData 
)