哪种NoSQL数据库可以保护数据?

4
我正在为 Windows 上的 C# (WPF) 应用程序编写代码。我需要为该应用程序存储数据(我认为是在数据库中)。但我需要保护这些数据以防止被修改。我计划分发此应用程序,因此文件系统保护不适用于此情况。另外,我想使用 NoSql 数据库。我的问题是,哪种 NoSQL 数据库支持数据保护,并且可以作为应用程序数据库嵌入式地安装,并且安装起来非常方便?
更新:那么,哪种单用户 NoSQL DB 更好,没有安全性,适用于可再分发的 WPF 应用程序?

所以你想要的基本上是一个只读的单用户数据库? - Philipp
1
所以文件系统保护不适用于这种情况 - 但是如果数据库是从本地文件提供的,那么用户仍然可以自由更改文件,对吗?他们可以安装嵌入式数据库的客户端,打开、修改和替换文件。您希望什么样的确切保护 - 一定程度的混淆?加密签名数据?您可能可以像对数据库一样轻松地对数据文件进行签名,在任何情况下,用户都可以自由地将其自己的签名密钥放入应用程序的副本中,以回避该问题。 - Rup
我需要在客户端 PC 上进行数据存储,而且只希望我的程序能够操作这些数据。之前我使用的是 MySql 数据库。我希望用户无法更改数据文件,但现在我需要另一种解决方案。 - mr_squall
很抱歉,我认为即使您回到MySQL数据库,也无法阻止拥有管理员访问权限的决心坚定的终端用户修改数据。 - Rup
1
那么,哪种单用户NoSQL数据库更适合可再分发的WPF应用程序呢? - mr_squall
显示剩余3条评论
1个回答

2

当数据存储在用户的硬盘上时,没有办法防止用户访问它。

将其存储在一些晦涩的格式中,例如某些不常见的数据库,也不会使它更难。 即使对数据库进行加密,也不是无法逾越的屏障。 您需要将解密密钥存储在应用程序内的某个位置,一个坚决的黑客足够长时间的搜索就会找到它。

当您真正想保护数据时,没有办法绕过将其存储在自己的服务器上,并通过互联网让程序访问它。 我建议使用Web服务。

当然,这将意味着您需要额外支付一些费用,因为您必须支付服务器费用。 但是这也有一些附加优点:

  • 您可以为每个用户提供自己的用户名和密码。 这使得盗版您的产品变得更加困难(太多来自不同网络的IP使用相同的用户名=可能是软件盗版者)
  • 更新数据库不需要在用户机器上部署任何内容
  • 您可以在您的所有营销材料中都使用“云”字眼 :)

不幸的是,在俄罗斯许多公司(我们的客户)没有互联网 =( 所以,也许你可以给我建议,我可以在我的应用程序中嵌入哪个NoSQL数据库? - mr_squall
在这种情况下,我指的是没有安全性的NoSql数据库。 - mr_squall

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接