从 MS Access 访问 .mdb 文件中的后端表

Posted

技术标签:

【中文标题】从 MS Access 访问 .mdb 文件中的后端表【英文标题】:Accessing backend tables in .mdb files from MS Access 【发布时间】:2012-11-13 20:09:37 【问题描述】:

我的组织使用用户友好的捐助者数据库软件,该软件将其数据存储在安装文件夹中的 .mdb 表中。该程序本身使用一种我不熟悉的专有查询方法。我对 SQL 有点熟悉,想访问软件外部的表以使用 SQL 进行查询。该软件允许我们使用 SQL 代码,但我们必须为该功能支付更多的钱。所以我希望自己打开数据库文件并进行自己的查询。

当我复制 .mdb 文件并打开它们时,系统不会提示我输入密码。我可以看到表名,但是当我打开单个表时,MS Access 给我错误“无法读取定义;没有读取表或查询的定义权限”。当我在 MDB Viewer Plus 中打开它时,我收到错误“错误设置表名称:无法读取记录;没有读取权限”我在 MS Access 中打开它并检查列出的用户。只有一个用户“管理员”,并且没有为其设置密码。我尝试将“管理员”的权限更改为读取/修改/管理,但它给了我错误“要更改此对象的权限,您必须拥有它的管理员权限。”

我的问题是,我如何获得数据库的管理员权限?显然捐赠者软件有办法打开数据库,那我该如何绕过它自己打开呢?

【问题讨论】:

【参考方案1】:

在数据目录或可能在应用程序的安装目录中应该有一个关联的 MDW 文件。这是数据库的工作组文件,在打开数据库时需要使用。

如果他们费心建立一个工作组,但他们将其锁定,所以你无法做你想做的事情。

This 是一个非常好的一步一步的关于如何使用工作组文件打开数据库的方法。你也可以在代码中做同样的事情。

【讨论】:

非常感谢!我找到了 mdw 文件并使用工作组文件打开了数据库,它提示我输入用户名和密码。然后我打开了 mdw 文件,但它说它是 Access 2.0 格式的,并且我没有权限读取文件中的大多数表。所以我运行了一个查询,从一个我无法点击的表中查找用户名和密码的列表。它工作并给了我列表,但密码就像wingding和汉字!我如何解密这些?或者,我应该通过其他方式获取密码吗? 你不会……这就是重点,哈哈。如果您没有用于生成 MDW 的 ID,那就很难了。除非最初的开发是草率的,你可以找到解决办法。 这是有道理的——我只是不喜欢无法访问存储我的数据的数据库表。现在我要联系开发人员,看看他们是否会给我密码(怀疑),或者至少制作一个我可以访问的表的备份集(或导出)。如果这些不起作用,这些密码的安全性如何?有没有简单的方法来破解工作组权限或绕过它们? 购买协议的一部分可能是数据是专有的,因此,如果他们正确设置了所有数据,那么您几乎就是 SOL。那里有服务,但我不知道它们对适当保护的数据库的效果如何。如果您别无选择,值得一试。 感谢您抽出宝贵时间提供帮助!

以上是关于从 MS Access 访问 .mdb 文件中的后端表的主要内容,如果未能解决你的问题,请参考以下文章

MS Access 数据库 (.mdb) 中表的审计跟踪

MS access mdb 文件第一次从 Access 2007 打开时处于“修复”状态

Mac OS X(或 Mono)中的 MS Access .mdb 文件

java直接存取MS Access的mdb数据库文件

MS-Access .mdb 编译器?

无法使用 OLEDB 连接 MS Access(.mdb 文件)