我不希望客戶能夠使我的SQL Server數據庫的備份和訪問表中的數據等工具加密SQL Server數據庫
我知道有一些產品,將加密的數據表格及其產品將在我的應用程序中顯示時解密。
你們知道哪些產品?我有什麼選擇?
(這是一個業務需求,無論它看起來有些嘿嘿)。
更新
這是SQL Server 2008 Express的
我不希望客戶能夠使我的SQL Server數據庫的備份和訪問表中的數據等工具加密SQL Server數據庫
我知道有一些產品,將加密的數據表格及其產品將在我的應用程序中顯示時解密。
你們知道哪些產品?我有什麼選擇?
(這是一個業務需求,無論它看起來有些嘿嘿)。
更新
這是SQL Server 2008 Express的
還有第三方。它已經存在多年了。 這是一個擴展存儲過程(即DLL)
SQL Server 2008支持數據庫加密本身。檢查文檔Transparent Data Encryption (TDE)。
這是針對sql express版本嗎? – Blankman 2008-11-26 15:45:00
嗯。不,我不這麼認爲 – 2008-11-26 17:03:11
您可以加密存儲過程,這可以保護您的邏輯。
TDE僅適用於企業版。
我找不到它是否支持原生sql加密 - 但你可以通過一點搜索找到它。但是,如果確實如此,則可以使用應用程序設置數據庫主密鑰,並將所有解密/加密代碼保存在應用程序中。
如果它不支持本地加密,您可能需要在應用程序語言中創建/查找自己的加密函數,並鎖定代碼中的密鑰。
透明數據加密將加密磁盤上的數據庫,但在內存中未加密,因此也需要適當的安全性以確保未經授權的用戶無法訪問表。由於這是企業專用功能,因此您可以放心地遠離它。
SQL Server 2005及更高版本具有內置加密功能 - 請參閱聯機叢書,尤其是第5章 - Adam Machanic的SQL Server 2005開發專家的加密(技術上說,Lara Rubbelke寫了第5章)。
請注意,您只需要對某些列進行加密 - 那些您永遠不會查找的列,因爲加密列幾乎沒有用於建立索引。 Adam Machanic的書提出瞭解決這個問題的方法。
加密數據庫內部數據的問題是,只要數據庫駐留在客戶端的機器上(正如您所指出的那樣,它們正在運行SQL 2008 Express,所以我打賭它存在於客戶端的桌面或筆記本電腦上),那麼他們可以進入數據。他們可以在實例上設置安全性,以便他們擁有SA權限,並從那裏獲取數據和期限。這是沒有辦法的。
你需要做的是在數據到達數據庫之前對數據進行加密:在你的應用程序中加密數據。在應用程序內部,加密要存儲在每個敏感字段中的數據。正如另一張海報所示,您不想加密ID字段,因爲這些字段用於建立索引。
SQL Server的加密器支持SQL 2000到2008,Express through Enterprise的列和全數據庫加密。 http://www.netlib.com
透明SQL Server加密的另一個解決方案是DbDefence 對於少於77 MB的數據庫可用。
對xp_crypt的支持是在俄羅斯,所以記住這一點。當客戶問題出現時,您的時區差異可能會對預期產生影響。我們遇到了xp_crypt失去授權的問題。我們的客戶受到他們的回報,幫助我們解決問題。 – 2012-04-10 16:06:31