2011-03-18 148 views
2

我有SQL Server中的問題方案WRT數據cyphering或加密/解密2005年SQL服務器 - 加密數據庫中的表的列數據

場景:

  • 有一個特定的表數據庫
  • 表有一欄,讓我們說「信用卡」
  • 的要求是,在本專欄的內容或數據應該被加密

必需(可信)溶液:被插入在該表的列

  • 數據應該被加密,即,是不可讀運行直接查詢數據庫和/或表上的人;或者只使用特定的解密邏輯,這需要某種密鑰
  • 在讀取任何應用程序中的數據時,解密方法應該很容易,也許基於KEY
  • 該過程或方法應該很容易使用
  • 但難以打破

請給我一些建議或解決方案在這方面。

謝謝。

+0

數據只需要在存儲器中進行加密,還是需要在數據庫級別上不可訪問未加密的數據? (應該在數據庫層還是更高層完成加密; DAL還是應用程序?) – 2011-03-18 12:47:28

回答

3
  • 您使用對稱密鑰
  • 數據加密你的證書加密對稱密鑰
  • 您用密碼加密證書
  • 定期生成新的對稱密鑰來加密新的數據
  • priodically您旋轉證書並重新加密與新certifictae的對稱密鑰,丟棄舊證書

應用程序向用戶請求密碼並在會話中打開證書。然後它使用DECRYPTKEYBYAUTOCERT加密數據。這是通用的行業標準。它保護數據休息並防止意外媒體丟失以及不知道密碼的人訪問。

你會發現他的話題很多壞建議。任何「自動化」並且不要求用戶輸入解密密碼的方案都是錯誤的。如果您想要「自動」加密或解密,您應該查看Transparent Data Encryption,它可以保護再次意外的媒體丟失。 TDE不能防止其他用戶瀏覽數據,如果他們有訪問權限。

+0

Remus,這仍然是SQL 2014的發展方向嗎? – 2016-06-07 19:30:30

+1

@SteveGreene 2014是的。 2016添加了新功能,如[Always Encrypted](https://msdn.microsoft.com/en-us/library/mt163865.aspx) – 2016-06-07 20:35:25

相關問題