Безопасное сетевое соединение ODBC с базой данных MS Access - PullRequest
0 голосов
/ 04 августа 2010

Прошу прощения за мою возмутительную глупость, я не знаю, возможно ли это вообще.

Вот ситуация.

Существует "база данных" MS Access (да, я знаю, верюя, я знаю), который мне нужно выбрать, обновить и вставить из удаленного места.Суть в том, что это должно происходить безопасно.

У меня есть полный контроль над удаленной машиной, на которой размещен файл MS Access, поэтому я могу добавлять драйверы и программное обеспечение по своему усмотрению.Сервер Microsoft Windows Server 2003.

Подход, который я намеревался использовать, состоял в том, чтобы разместить PHP-скрипт на HTTPS-сервере (используя Apache или IIS, не имеет значения), отправить XML на PHPсценарий, который затем выполняет свою работу в базе данных MS Access и отправляет результаты XML обратно.Однако из-за нехватки времени я пытаюсь выяснить, могу ли я безопасно подключиться напрямую через ODBC и заставить его общаться с базой данных MS Access.

Насколько я понимаю, ODBC не совсемславится своей безопасностью, но есть драйверы ODBC, которые поддерживают зашифрованные соединения, или что я могу каким-то образом туннелировать соединение ODBC через SSL.Однако вся информация, которую я нашел до сих пор, основана на том, что база данных - это Microsoft SQL.

В частности, меня интересует, существуют ли способы SSL-соединения ODBC без учета базовой базы данных.Я мог бы, вероятно, выяснить это на клоне Unix самостоятельно, но хост - это Windows Server 2003, и в этом случае я не знаю, как действовать.

Возможно ли это вообще?Любая информация высоко ценится!

Ответы [ 3 ]

1 голос
/ 06 августа 2010

Проблема в том, что вы не совсем понимаете, как ODBC-соединение работает с доступом.Мы не говорим здесь о соединении на основе TC / IP или соединения на основе носка.

Если вы посмотрите на ЛЮБУЮ строку соединения для JET для доступа к файлу, вы увидите, что в соединении ODBC всегда, Я ПОВТОРЯЮ ВСЕГДА включаю полностьюквалифицированное имя пути Windows.Когда я говорю полное имя пути Windows, я говорю о файле, который находится на жестком диске.

В конце дня мы говорим об открытии простого файла окон Джейн.Лошадь - это лошадь, это лошадь, а файл Windows - это файл Windows, это файл Windows.

Другими словами, мы говорим об открытии файла, сидящего на жестком диске.Таким образом, весь этот процесс ничем не отличается от открытия файла Excel, текстового файла, файла PowerPoint или, в данном случае, файла доступа, который также находится на жестком диске.

Нет сервера или конкретного программного обеспечения для баз данных, которое НИКОГДА должно быть установлено на компьютере, на котором установлен этот файл.Это СТОРОНА КЛИЕНТА, которая должна иметь программное обеспечение и выполнить стандартную команду открытия файла Windows, чтобы извлечь данные с диска.Помните, что когда вы размещаете файл Word на сервере и открываете его, вам никогда не приходилось устанавливать слово на сервере, это клиентская сторона, которая открывает стандартный файл Windows, и точно такой же сценарий применяется к JET, когда он открывает файл доступа..

Что это значит, если вы собираетесь открыть этот файл через подключение к Интернету, вам необходимо расширить сеть Windows через Интернет.HTTP или даже FTP ничем не близки к сетевому протоколу Windows.

Однако вы можете расширить сетевую систему Windows через Интернет, и обычно это делается с помощью VPN (виртуальная частная сеть).Это означает, что вам придется настроить VPN.Таким образом, это позволит вам увидеть этот другой компьютер через сетевое окружение, просмотреть файлы в этой папке на сервере и просто открыть его.Снова открыв стандартный файл Windows, на сервере не работает какой-либо тип службы, к которому можно было бы подключиться, например SQL Server.

Вы можете прочитать следующую мою статью, и я объясню, почему запуск VPN черезИнтернет с сетью Windows и JET-файл (доступ) просто не будут работать надежно:

http://www.members.shaw.ca/AlbertKallal//Wan/Wans.html

Итак, имейте в виду, что если вы посмотрите на любой JET ODBCСтрока подключения, вы заметите, что она никогда не основывается на IP, но должна иметь полное имя Windows.Я не могу не подчеркнуть и еще раз повторить, что мы говорим о стандартном имени файла Windows и месте, которое мы собираемся открыть.

Помните, что это ничем не отличается от вводного слова, Excel или PowerPoint.Драйвер ODBC путает эту проблему, так как драйвер требуется ТОЛЬКО для установки и настройки на стороне клиента, нет ничего, чтобы соединить два на стороне сервера, кроме необходимой возможности открытия стандартного простого файла окон Jane.

То, что вы, таким образом, спрашиваете по возможности с VPN, но не практично.Вы можете прочитать вышеупомянутую статью, и она подробно объясняет, почему это не может надежно работать и функционировать.

С появлением нескольких бесплатных выпусков SQL-сервера и множества других вариантов, указанное ограничение, скорее всего, не станет для вас проблемой.Эти другие серверные системы баз данных не основаны на файлах, и ваши строки подключения НИКОГДА не будут преобразованы в какое-либо имя файла.Таким образом, эти серверы баз данных также не требуют, чтобы протокольный вызов Windows Network открывал этот файл, и, следовательно, вы даже можете подключаться к серверам, таким как Linux и т. Д., На которых даже не установлена ​​сеть Windows.Для подключения через Jet необходимо использовать Windows Network для непосредственного открытия файла.

1 голос
/ 04 августа 2010

Обычно ставят посредника между клиентами и базой данных.Посредник обрабатывает аутентификацию, авторизацию, безопасную передачу данных и т. Д. Вы предполагаете, что база данных находится внутри вашего межсетевого экрана, в безопасной области.Все, что вы хотите добавить для обеспечения безопасности клиентов, находящихся за пределами вашего брандмауэра, обрабатывается посредником.

Будучи Java-человеком, я бы автоматически подумал, что веб-клиент общается с одним или несколькими сервлетами.Пусть сервлет обрабатывает аутентификацию и авторизацию.HTTP означает, что нет проблем с брандмауэром.Вы также можете использовать HTTPS.

Я думаю, это было бы легче установить.Кроме того, даже соединение ODBC с поддержкой SSL все еще предоставляет вашу базу данных более широкому Интернету.Я бы не хотел, чтобы мои данные в таком хранилище.Вы бы?

0 голосов
/ 14 июня 2017

Почему ваша база данных MS-Access (на самом деле MS-Jet) содержит только 1 файл?
Я не могу представить это.Если бы это была не база данных ODBC, тогда я могу представить ее.Большинство баз данных MS-Jet ODBC содержат 100 файлов * .MDB, в которых каждый файл MDB действует как отдельная таблица, группа таблиц или частичная таблица, которая логически и физически распределена (не разделена и не содержит ссылок) через десятки или сотни файлов MDB.Ни один файл MDB не считается базой данных сам по себе.Вот как я видел базы данных ODBC, созданные с использованием драйвера MS-Access и MS-Jet Engine.Большинство баз данных ODBC MS-Jet / MS-Access Driver имеют размер около 5 миллиардов строк и 1 терабайт.

...