Да, это возможно. Например. в Linux запустите
ssh -N -Llocalport:dbserver:dbport yourname@connectionserver
, где
- localport - это порт на вашей машине, который будет перенаправлен (может быть 1521, если локальный экземпляр oracle не запущен)
- dbserver - это имя или IP-адрес сервера базы данных
- dbport - порт базы данных (обычно 1521)
- ваше имя - логин на сервере соединений
- сервер соединений - это машина, к которой у вас есть доступ по ssh
То же самое можно сделать в Windows, используя Plink (поставляется с Putty):
plink -N -L localport:dbserver:dbport yourname@connectionserver
Сделайте это на обеих машинах (на вашем локальном компьютере и на сервере, к которому у вас есть доступ), чтобы связать туннели ssh. Пример: * +1021 *
Сервер соединений (при условии Linux):
ssh -N -L1521:dbserver:1521 dblogin@dbserver
Ваш ПК:
plink -N -L 1521:connectionserver:1521 connlogin@connectionserver
Запись tnsnames.ora должна выглядеть так, как будто вы используете локальную базу данных, например,
prodoverssh =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = prod)
)
)