为啥UCanAccess 需要密码而Jackcess 不需要?
Posted
技术标签:
【中文标题】为啥UCanAccess 需要密码而Jackcess 不需要?【英文标题】:Why UCanAccess needs password and Jackcess doesn't?为什么UCanAccess 需要密码而Jackcess 不需要? 【发布时间】:2015-10-07 13:16:08 【问题描述】:最近我一直在使用(测试)这两种解决方案来从 Access(MDB 文件)中获取一些数据。而且我认为 Jackcess 不需要密码来访问数据库的数据,而 UCanAccess 只有在我插入密码时才有效(如果数据库有)。
那么,wtf 真的发生了吗?如果 Jackcess 是 UCanAccess 的依赖项,为什么它需要密码?或者为什么 Jackcess 也不需要密码?
谢谢!
【问题讨论】:
wtf 可能会被认为是不礼貌的......无论如何,如果你真的想用密码保护你的访问文件,你必须对其进行加密。如果没有,上层 API 实现(MS Access via ODBC or GUI,UCanAccess)只会应用一个基于代码弱代码的块。 【参考方案1】:将数据库密码分配给旧格式的 .mdb 数据库时,该文件实际上并未加密。 (旧版本的 MS Access 应用程序有一个单独的选项来加密文件,但即使是这种保护也很弱。)
如果文件没有加密,那么 Jackcess 不需要密码来打开它。事实上,Jackcess 提供了一种从未加密(但“受密码保护”).mdb 文件中检索数据库密码的方法。
正如对您问题的评论中所建议的,UCanAccess 开发团队决定与其他更高级别的数据访问方法保持一致,并要求用户在打开数据库时提供正确的密码。如果您真的想避免将数据库密码编码到 UCanAccess 应用程序中,那么您总是可以
先用 Jackcess 打开数据库文件, 使用 Jackcess 调用来检索数据库密码, 关闭与数据库的 Jackcess 连接,然后 打开与数据库的 UCanAccess 连接时提供数据库密码。请注意,当将数据库密码应用于较新格式的 .accdb 数据库时,该文件确实是加密的,因此 Jackcess 和 UCanAccess 都需要正确的密码(以及附加组件“Jackcess Encrypt” , 加上依赖) 来打开它。
【讨论】:
以上是关于为啥UCanAccess 需要密码而Jackcess 不需要?的主要内容,如果未能解决你的问题,请参考以下文章
如何将 UCanAccess 连接到使用数据库密码加密的 Access 数据库?
带有数字通配符的 UCanAccess Select 语句给出了意外的令牌:需要 REGEXP_MATCHES
我正在尝试将一个简单的查询插入到 Microsoft 数据库中,并且我正在使用 UCanAccess