1

最近我一直在使用(测试)这两种解决方案来从 Access(MDB 文件)中获取一些数据。而且我认为 Jackcess 不需要密码来访问数据库的数据,而 UCanAccess 只有在我插入密码时才有效(如果数据库有)。

那么,wtf真的发生了吗?如果 Jackcess 是 UCanAccess 的依赖项,为什么它需要密码?或者为什么 Jackcess 也不需要密码?

谢谢!

4

1 回答 1

2

将数据库密码分配给旧格式的 .mdb 数据库时,该文件实际上并未加密。(旧版本的 MS Access 应用程序有一个单独的选项来加密文件,但即使是这种保护也很弱。)

如果文件没有加密,那么 Jackcess 不需要密码来打开它。事实上,Jackcess 提供了一种从未加密(但“受密码保护”).mdb 文件中检索数据库密码的方法。

正如对您的问题的评论中所建议的那样,UCanAccess 开发团队决定与其他更高级别的数据访问方法保持一致,并要求用户在打开数据库时提供正确的密码。如果您真的想避免将数据库密码编码到 UCanAccess 应用程序中,那么您总是可以

  • 先用 Jackcess 打开数据库文件,
  • 使用 Jackcess 调用来检索数据库密码,
  • 关闭 Jackcess 到数据库的连接,然后
  • 打开与数据库的 UCanAccess 连接时提供数据库密码。

请注意,将数据库密码应用于较新格式的 .accdb 数据库时,该文件确实加密的,因此 Jackcess 和 UCanAccess 都需要正确的密码(以及附加组件“Jackcess Encrypt”以及依赖项)才能打开它。

于 2015-10-08T16:36:27.243 回答