Есть ли способ проанализировать файлы .mdb из командной строки (findstr или через сценарий WSH) для определения ссылок на базу данных?
Я пытаюсь идентифицировать все файлы .mdb в большом файловом ресурсе, которые ссылаются на конкретный сервер базы данных. Я попытался вручную выполнить поиск в нескольких файлах .mdb, которые ссылаются на сервер базы данных в шестнадцатеричном редакторе, но поиск по имени сервера базы данных не возвращает никаких совпадений.
Файловый сервер работает под управлением Windows 2003.
Обновить:
Я нашел текст в моем текстовом редакторе (TextPad), который выглядит как встроенная информация ODBC: ... "SERVER = .myserver" ... Я не уверен, какая кодировка используется, findstr не может найти этот текст в файл.
С помощью PowerShell вы, вероятно, сможете. Видеть Сообщения в блоге Ричарда Сиддэуэя с тегом Access. Я думаю, вы можете прочитать все строки подключения определений таблиц и выяснить соответствующие значения. Ниже приведен код, который я использую в 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
FINDSTR не обрабатывает строки Unicode. Если вы не можете использовать другие утилиты, вы можете получить настоящий дерьмовый вывод, выполнив следующие действия: введите dbname.mdb | findstr "S E R V E R ="
Если вы можете использовать другую программу, загрузите служебную программу SysInternals "strings" здесь: http://technet.microsoft.com/en-us/sysinternals/bb897439.aspx
И сделайте что-нибудь вроде: strings -u dbname.mdb | findstr "СЕРВЕР ="
Насколько я могу судить, на этот вопрос нет ответа. Базы данных Access (обычно файлы .mdb) являются автономными, не подключенными к SQL Server (или другой) серверной базе данных.
Это не так. Подключения к другим базам данных могут быть созданы внутри Access. Я прочитал и начал печатать слишком быстро, предполагая, что это серверная ситуация.
Возможно, данные могут быть извлечены или экспортированы из серверной базы данных и сохранены как база данных Access. Можно импортировать базу данных Access в базу данных на сервере. MS SQL Server даже может читать и записывать в файл базы данных Access через Удаленные хранимые процедуры или "Связать таблицы".
Но в базе данных Access нет обязательного подключения к серверу, и, если это не указано специально, в базе данных Access нет ничего, что могло бы идентифицировать конкретный сервер, к которому он подключен или был подключен.
-> Это не совсем правильно .. ODBC или другой объект подключения в базе данных Access должен иметь информацию о другом конце подключения. Однако я не верю, что эту информацию можно увидеть иначе, как через среду Access или программу.
РЕДАКТИРОВАТЬ / ОБНОВЛЕНИЕ: вопрос был конкретным ... можно ли проанализировать файл .mdb с помощью командной строки или инструмента текстового поиска для поиска соединений с базой данных. Хотя в моем ответе на самом деле не учитывался "интерфейсный" сценарий базы данных, я думаю, что он все еще в силе ... Я не думаю, что вы можете опросить базу данных способом, описанным в вопросе. Вероятно, вы можете написать программу для опроса базы данных Access и получения свойств соединения. Но спрашивали не об этом.