2008-11-26 121 views
4

我不希望客戶能夠使我的SQL Server數據庫的備份和訪問表中的數據等工具加密SQL Server數據庫

我知道有一些產品,將加密的數據表格及其產品將在我的應用程序中顯示時解密。

你們知道哪些產品?我有什麼選擇?

(這是一個業務需求,無論它看起來有些嘿嘿)。

更新

這是SQL Server 2008 Express的

回答

2

還有第三方​​。它已經存在多年了。 這是一個擴展存儲過程(即DLL)

+2

對xp_crypt的支持是在俄羅斯,所以記住這一點。當客戶問題出現時,您的時區差異可能會對預期產生影響。我們遇到了xp_crypt失去授權的問題。我們的客戶受到他們的回報,幫助我們解決問題。 – 2012-04-10 16:06:31

0

SQL Server 2008支持數據庫加密本身。檢查文檔Transparent Data Encryption (TDE)

+1

這是針對sql express版本嗎? – Blankman 2008-11-26 15:45:00

+0

嗯。不,我不這麼認爲 – 2008-11-26 17:03:11

0

您可以加密存儲過程,這可以保護您的邏輯。

TDE僅適用於企業版。

我找不到它是否支持原生sql加密 - 但你可以通過一點搜索找到它。但是,如果確實如此,則可以使用應用程序設置數據庫主密鑰,並將所有解密/加密代碼保存在應用程序中。

如果它不支持本地加密,您可能需要在應用程序語言中創建/查找自己的加密函數,並鎖定代碼中的密鑰。

0

透明數據加密將加密磁盤上的數據庫,但在內存中未加密,因此也需要適當的安全性以確保未經授權的用戶無法訪問表。由於這是企業專用功能,因此您可以放心地遠離它。

SQL Server 2005及更高版本具有內置加密功能 - 請參閱聯機叢書,尤其是第5章 - Adam Machanic的SQL Server 2005開發專家的加密(技術上說,Lara Rubbelke寫了第5章)。

請注意,您只需要對某些列進行加密 - 那些您永遠不會查找的列,因爲加密列幾乎沒有用於建立索引。 Adam Machanic的書提出瞭解決這個問題的方法。

3

加密數據庫內部數據的問題是,只要數據庫駐留在客戶端的機器上(正如您所指出的那樣,它們正在運行SQL 2008 Express,所以我打賭它存在於客戶端的桌面或筆記本電腦上),那麼他們可以進入數據。他們可以在實例上設置安全性,以便他們擁有SA權限,並從那裏獲取數據和期限。這是沒有辦法的。

你需要做的是在數據到達數據庫之前對數據進行加密:在你的應用程序中加密數據。在應用程序內部,加密要存儲在每個敏感字段中的數據。正如另一張海報所示,您不想加密ID字段,因爲這些字段用於建立索引。

0

SQL Server的加密器支持SQL 2000到2008,Express through Enterprise的列和全數據庫加密。 http://www.netlib.com

0

透明SQL Server加密的另一個解決方案是DbDefence 對於少於77 MB的數據庫可用。