我正在尝试构建与Windows 7兼容的新数据库管理器,用于我没有代码的旧软件。我使用64位Windows 7,因此无法安装用于连接数据库的必要DAO驱动程序。
不幸的是,使用DAO用户/工作组权限保护数据库。有没有办法从数据库中提取信息或绕过该文件的安全措施?
答案 0 :(得分:0)
您没有提及必须使用的Access版本。
如果您有权访问2010或2013,则可以使用工作组安全文件以快捷方式打开数据库。
2010
"C:\Program Files (x86)\Microsoft Office\Office14\MSACCESS.EXE"
"c:\RidesDev\SkiRides\RidesXP\RidesXP.mdb"
/wrkgrp "c:\RidesDev\SkiRides\RidesXP\Rides.mdw"
2013
"C:\Program Files (x86)\Microsoft Office\Office15\MSACCESS.EXE"
"c:\RidesDev\SkiRides\RidesXP\RidesXP.mdb"
/wrkgrp "c:\RidesDev\SkiRides\RidesXP\Rides.mdw"
以上快捷键当然是一行,每个部分用空格分隔。
使用上述快捷方式打开数据库后,这将指定工作组安全文件。系统将提示您输入用户名和密码。完成此操作后,可以从Access文件菜单中关闭数据库。 (不要退出Access)。此时,您可以创建一个空白的新2010 accDB数据库。然后从旧的mdb数据库导入所有对象。
请注意,以上工作原理是您不退出Access - 这意味着您将保持与安全组的连接。由于您仍然连接到安全工作组,因此您可以将旧版mdb中的所有对象导入刚创建的新accDB。此时我将退出Access,然后启动新创建的数据库。
因此,新数据库将不受任何安全保护,退出+重新输入Access并启动Access而不使用安全组快捷方式意味着您将打开没有工作组安全性的新数据库。
以上假设您拥有正确的用户+密码登录,并拥有对数据库的完全权限。如果数据库具有无法绕过的启动代码和表单,则可以创建空白数据库并再次为新数据库指定上述工作组安全性文件,并且还允许您将对象导入新的空白数据库。结果应该是没有任何安全性的accDB文件。