ODBC через ssh-туннель на 3-ю машину

На работе у нас есть база данных SqlServer, к которой нельзя подключиться из-за пределов нашей внутренней сети. Если мы хотим работать удаленно, мы можем подключиться по ssh к нескольким другим серверам в нашей сети, а затем работать через X Forwarding, чтобы приложения для разработки имели доступ к базе данных.

Это раздражает по целому ряду очевидных причин, таких как задержка в среде IDE, и мне интересно, как я могу туннелировать соединения с базой данных обратно на мою машину. Кажется, что это должно быть возможно, но я не уверен, как это сделать, так как между ними должен быть промежуточный шаг. Этот вопрос похож на то, что я хочу сделать, но работает только для переходя непосредственно к серверу БД, если я правильно понимаю.

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

Я хочу сделать это

Local machine (Linux) -> Server (Linux) -> Database connection to DB (Sql Server)

person asm    schedule 27.09.2011    source источник


Ответы (2)


Ну, как вы сказали, если вы хотите напрямую использовать зашифрованное соединение с SQL Server, вы можете просто использовать драйвер Linux, который дает вам это, и я думаю, что большинство из них. Вы можете использовать мост, как уже было предложено. Но это может быть возможно с помощью socat. Какой драйвер вы используете на локальной машине? Я быстро поиграю и посмотрю, как это работает.

person Nick Gorham    schedule 27.09.2011
comment
Да, кажется, работает с socat. использование (на средней машине) socat TCP4-LISTEN:1057, fork TCP4:192.168.0.26:1057 позволяет вам подключиться к средней машине извне, а затем подключиться к экземпляру SQL Server, прослушивающему 192.168.0.26:1057. (машина SQL Server). Конечно, вы можете добавить свои собственные адреса по мере необходимости. - person Nick Gorham; 27.09.2011
comment
Отлично, это именно то, что я искал, спасибо! - person asm; 27.09.2011

ПО OpenLinkМногоуровневый драйвер ODBC для SQL Server может помочь вам...

Он имеет клиент-серверную архитектуру, которую можно легко настроить на трехуровневую (клиент/прокси/сервер) архитектуру следующим образом:

  • Linux-клиент -

    • ODBC Application
    • Универсальный драйвер ODBC OpenLink (многоуровневый клиентский компонент)

  • Линукс прокси -

    • OpenLink Request Broker (Multi-tier server component)
    • Агент базы данных OpenLink для SQL Server (многоуровневый серверный компонент)

  • Windows-сервер —

    • SQL Server DBMS
person Garry M. Biggs    schedule 27.09.2011
comment
Я посмотрю на это еще немного, хотя он выглядит немного тяжеловатым. Я искал довольно легкое решение, так как это чисто для удобства во время разработки. - person asm; 27.09.2011