Database 如何防止用户看到我正在使用的数据库文件?

Database 如何防止用户看到我正在使用的数据库文件?,database,visual-studio-2010,security,password-protection,Database,Visual Studio 2010,Security,Password Protection,我正在编写一个基于MS Access*.accdb数据库的VB.NET桌面应用程序。当我的应用程序安装在最终用户计算机上时,数据库文件必须与程序集位于同一目录中 我担心的是,我希望数据保持机密,access数据库的密码保护很容易被破坏 如何保护这些数据 我曾考虑将数据库嵌入到我的程序集中,但它看起来是(或曾经是)。尽管如此,我还是试图修改它,但我不知道如何修改我的连接字符串 非常感谢您的帮助 访问不是机密数据的适当存储介质。正如你所说,密码机制很容易被破坏 您可以将所有机密数据以加密形式存储在数

我正在编写一个基于MS Access*.accdb数据库的VB.NET桌面应用程序。当我的应用程序安装在最终用户计算机上时,数据库文件必须与程序集位于同一目录中

我担心的是,我希望数据保持机密,access数据库的密码保护很容易被破坏

如何保护这些数据

我曾考虑将数据库嵌入到我的程序集中,但它看起来是(或曾经是)。尽管如此,我还是试图修改它,但我不知道如何修改我的连接字符串


非常感谢您的帮助

访问不是机密数据的适当存储介质。正如你所说,密码机制很容易被破坏

您可以将所有机密数据以加密形式存储在数据库中,但仍需要将加密密钥存储在同一系统上,以便应用程序读取数据。您的应用程序需要进行加密/解密。至少在打开文件并猜测密码时,内容仍然很难读取。但是,任何对.NET和安全性有足够了解的人都能够解密数据,因为您必须将加密密钥存储在应用程序可以检索到的位置,以便对数据进行加密/解密

嵌入数据库也没有多大帮助,因为嵌入的资源无法在运行时更新,而且它们可以很容易地从程序集中提取,除非您也加密整个程序集(有一些工具可以做到这一点)


底线:当保密性是关键时,不要存储个人无法/可能无法在其系统上看到的数据。或者不要将加密密钥存储在此人的系统上。

另一种解决方案可能是使用第三方软件,将我的所有文件打包到一个安全的可执行文件中。这是否存在?你可以尝试某种形式的虚拟化。。。类似于