0

在 CD-ROM 上分发小型数据库的好方法是什么?

数据库必须加密。它必须在 WinXP 和 Vista 上运行。该应用程序是用 C# 编写的,并且也在 CD 上分发。记录只能读取,不能写入。

可以运行安装程序,但我们不想这样做。

数据库有 100000 条记录,性能不是主要目标。

编辑:是的,用户必须输入密码才能解密数据库。

4

8 回答 8

7

我会为此使用SQLite

实际上重新阅读您的问题,您甚至可以使用平面文件或 XML 文件,因为不需要性能或更新/添加。

但是,如果您有任何机会在您的应用程序成熟时需要添加/更新此数据源,请使用 SQLite。

于 2009-05-28T09:58:07.833 回答
3

老实说......如果你能做到,我会使用加密的 XML 文件。无需安装,可在任何地方运行(文本文件没有依赖项),速度快,并且由于不需要更新,这将使其变得更加容易。

于 2009-05-28T10:00:19.110 回答
2

MS-SQL (Express) 具有只读数据库的显式设置。我不确定加密。

我很确定 Sql Server Compact (SSCE) 也将允许只读,并且它支持加密。但是您必须将密码存储在某个地方...

SSCE 可能允许您运行 w/oa 设置。

鉴于数据的大小,也可以使用已填充并保存到磁盘的数据集。您可以使用标准库进行加密和压缩。

于 2009-05-28T10:05:57.773 回答
2

SQL Server CE是支持加密的 SqlServer(CE 代表 Compact Edition)的精简版。数据库包含在一个文件中。

该软件包含一组 DLL,您可以将其与 exe 并排复制。

(不要被 CE 所迷惑:除了 Windows Mobile 版本之外,还有一个 Desktop Windows 版本。)

于 2009-05-28T10:08:24.943 回答
2

如果您在英国的政府机构工作,请尽量不要将 CD 留在火车上或邮寄... :)

于 2009-05-28T10:08:32.230 回答
2

数据库必须加密

快速提问:你如何解密它?正确地,通过让用户输入解密密码,或者不正确地将解密密钥添加到您的应用程序,这意味着它可以很容易地提取?

因为如果是解决方案 2,那么您可以通过完全放弃加密要求来扩大可能的数据库选项。

我也在寻找一个嵌入式数据库,根据我收到的答案,我选择了易于实现的 SQLite 。

于 2009-05-28T10:38:49.703 回答
0

正如其他人指出的那样,存在支持只读访问的数据库。

至于加密,SQLite 至少有一个扩展支持加密

您也可以选择任何只读 dbms 并保留 pk 和 fk,但手动加密内容字段(即通过代码)

于 2009-05-28T14:24:07.393 回答
0

SQLite 也是我的第一个想法,但尽管我普遍不喜欢 XML 并且考虑到只读方面,但我认为 XML 的自定义加密可能是最好的选择。逆向工程会更难。

于 2011-01-04T21:10:54.850 回答