有没有办法从命令行parsing.mdb文件(findstr或通过WSH脚本)来识别数据库链接?
我试图识别链接到特定数据库服务器的大文件共享中的所有.mdb文件。 我已经尝试手动search几个.mdb文件链接到hex编辑器中的数据库服务器,但search数据库服务器名称不会返回任何匹配。
文件服务器正在运行Windows 2003。
更新:
我在我的文本编辑器(TextPad)中发现了一些看起来像embedded式ODBC信息的文本:…“SERVER = .myserver”…我不确定正在使用什么编码,findstr无法在文件。
FINDSTR不处理Unicodestring。 如果不能使用其他实用程序,可以通过执行以下操作来获得真正的糟糕输出:键入dbname.mdb | findstr“SERVER =”
如果您可以使用其他程序,请在此处下载SysInternals“strings”实用程序: http : //technet.microsoft.com/en-us/sysinternals/bb897439.aspx
然后执行下面的操作:strings -u dbname.mdb | findstr“SERVER =”
使用PowerShell你可能可以。 查看Richard Siddaway的带有Access标签的博客post。 我会认为你可以通读所有的表定义连接string,并找出适当的值。 以下是我在VBA中使用的代码。
For i = 0 To db.TableDefs.Count - 1 If Len(db.TableDefs(i).Connect) > 0 Then TableConnectStrnig = Mid(db.TableDefs(i).Connect, 11) End If Next i
据我所知,这个问题没有答案。 Access数据库(通常是.mdb文件)是独立的,不连接到SQL Server(或其他)基于服务器的数据库。
这是不正确的。 连接到其他数据库可以在Access中创build。 我阅读并开始打字太快,假设服务器驱动的情况。
数据可能从基于服务器的数据库中提取或导出,并存储为Access数据库。 可以将Access数据库导入基于服务器的数据库。 MS SQL Server甚至可以通过远程存储过程或“ 链接表 ”来读写Access数据库文件。
但是,Access数据库中没有必需的服务器连接,除非特别编码,否则Access数据库中没有任何内容用于标识已连接或已连接的特定服务器。
– >这不完全正确..在Access数据库中的ODBC或其他连接对象应该有关于连接的另一端的信息。 但是,我不相信通过Access环境或程序可以看到的信息。
编辑/更新:问题是特定的..可以通过命令行或文本search工具来分析.mdb文件来查找数据库连接。 虽然我的答案并没有真正考虑到“前端”数据库的情况,我认为仍然是站在..我不认为你可以用问题中描述的方式审问数据库。 你可以编写一个程序来询问Access数据库并获得连接属性。 但是那不是被问到的。