2009-05-28 47 views
0

在CD-ROM上分發小型數據庫的好方法是什麼?要在CD上分發的數據庫

數據庫必須加密。 它必須在WinXP和Vista上運行。 該應用程序是用C#編寫的,也分佈在CD上。 記錄只能讀取,不能寫入。

它可以運行安裝程序,但我們不希望這樣做。

數據庫有100000條記錄,性能不是主要目標。

編輯: 是的,用戶將不得不輸入密碼來解密數據庫。

+2

因此,您將包含數據庫解密密鑰以及加密數據庫的應用程序包括在內?還是應用程序打電話給中央服務器,根據用戶提供的一些驗證數據獲取解密密鑰? – JeeBee 2009-05-28 10:24:14

+0

是的一切都在CD - 應用程序和數據庫上。我只想防止數據庫被別人使用,而不是我的應用程序。如果這甚至是可能的,我不確定。 – 2009-05-28 12:40:10

回答

7

我會用SQLite這個。

事實上,重新閱讀您的問題,您甚至可以使用平面或XML文件,因爲不需要性能或更新/添加。

如果您有任何機會在您的應用程序成熟時需要添加/更新此數據源,請使用SQLite。

3

老實說...如果你能做到,我會使用加密的XML文件。 沒有安裝,可以在任何地方運行(文本文件沒有依賴關係),速度更快,並且因爲不需要更新,所以更容易。

2

MS-SQL(Express)對只讀數據庫有一個明確的設置。我不確定加密。

我很確定Sql Server Compact(SSCE)也將允許只讀,並且它支持加密。但是你必須在某個地方存儲密碼...

SSCE可能會允許你運行W/O設置。

考慮到數據的大小,還可以使用填充並保存到磁盤的數據集。您可以使用標準庫進行加密和壓縮。

+0

SQL Server CE可以打開數據庫r/only:http://msdn.microsoft.com/en-us/library/ms171817(SQL.90).aspx – Richard 2009-05-28 10:29:34

2

SQL Server CE是支持加密的SqlServer(CE代表Compact Edition)的精簡版。數據庫包含在一個文件中。

該軟件包含一系列與您的exe並排複製的DLL。

(不要被CE所迷惑:有一個桌面Windows版本,除了Windows Mobile的版本)

+0

我認爲CE代表跛子版:) – leppie 2009-05-28 10:42:22

+0

Naaah!這是可愛的版本: - D – 2009-05-28 11:16:26

+0

SQL Server CE有一個安裝。該DLL不足以運行它。 – jle 2009-05-28 14:27:00

2

如果你在英國官立機構工作,儘量不要離開CD在火車上或發送它在後... :)

+0

我知道這是一個droll評論,但它提出了一個有效的點 - 爲什麼這個數據庫需要加密 - 它是否保存敏感數據?如果是這樣,那麼它不應該在CD上,尤其是在包含解密密鑰的應用程序旁邊! – JeeBee 2009-05-28 10:17:55

2

數據庫已經被加密

快速的問題:你如何解密?恰當地,通過讓用戶鍵入解密密碼,或者通過將解密密鑰添加到應用程序中,這意味着它可以輕鬆提取?

因爲如果是解決方案2,那麼可以通過完全放棄加密要求來擴大可能的數據庫選項。

我還在找一個嵌入式數據庫,並且我收到了based on the answers,我去了SQLite,那是easy to implement

0

正如其他人指出的,有數據庫支持只讀訪問。

至於加密,SQLite的至少有一個extension supporting encryption

您也可以選擇任何只讀數據庫管理系統,並保持PK的和FK的,但加密內容字段中手動(代碼IE)

0

SQLite的是也是我的第一個想法,但儘管我一般不喜歡XML並考慮到只讀方面,但我認爲自定義XML加密可能是最佳選擇。逆向工程很難。