C# 如何使数据库在安装应用程序时不可见?

C# 如何使数据库在安装应用程序时不可见?,c#,.net,C#,.net,我开始用c#创建自己的应用程序,使用Microsoft Access作为数据库。问题是,在我使用这个在internet上找到的软件创建了.exe文件之后,安装后,数据库总是可以在c驱动器中访问。我应该使用不同的数据库吗?请告诉我。您有很多选择: 将数据库置于难以找到的位置,如AppData 使用Access的密码/加密功能;有限且易破裂 加密数据库中的数据,这有@HMZ提到的限制 使用在线数据库 您可以使查找和访问数据变得困难,或者,如果需要完全安全的数据库,可以使用加密或在线数据库。有了在

我开始用c#创建自己的应用程序,使用Microsoft Access作为数据库。问题是,在我使用这个在internet上找到的软件创建了.exe文件之后,安装后,数据库总是可以在c驱动器中访问。我应该使用不同的数据库吗?请告诉我。

您有很多选择:

  • 将数据库置于难以找到的位置,如
    AppData
  • 使用Access的密码/加密功能;有限且易破裂
  • 加密数据库中的数据,这有@HMZ提到的限制
  • 使用在线数据库
您可以使查找和访问数据变得困难,或者,如果需要完全安全的数据库,可以使用加密或在线数据库。有了在线数据库,您就需要托管它,并且可能需要处理多用户访问


您需要了解每个解决方案的风险并做出相应的决定。

如果您的软件是WinForm/WPF或任何使用C#等编程语言创建的程序,则数据库不必位于
C
驱动器中,因为它是控制如何连接access数据库的编程语言(通常情况下:
Provider=Microsoft.ACE.OLEDB.12.0;数据源=
,您也可以使用密码来隐藏它,您可以将
.accdb
重命名为
.dll
,这样就没有人会知道它是access数据库,您也可以添加密码)

欢迎使用。可见是什么意思?为什么重要?数据库中数据的性质是什么?如果数据库可以在c驱动器中访问,软件的创建将变得毫无意义,因为有人可以只操作其中的数据,而不必使用软件本身。有没有办法隐藏数据库?不管无论您尝试什么,如果数据库是本地的,有一种方法可以访问它。如果这是超关键/机密数据,请重新思考您的概念。@Jezer我们不知道您正在编写哪种类型的解决方案,但想法是,即使密码保护您的access db,它也毫无用处,而且很容易破解。您唯一的本地安全选项是encr加密和its会带来巨大的性能损失,因为您需要对读写操作进行加密和解密。