是的,這是可能的。例如。在Linux上運行
ssh -N -Llocalport:dbserver:dbport [email protected]
其中
- 將localPort是將轉發你的機器上的端口(可以是1521,如果有運行Oracle的本地實例)
- DBSERVER是名或數據庫服務器
- dbport的IP是數據庫(通常是1521)的端口
- 提供yourname是在connectionserver登錄
- connectionserver就是你有ssh訪問
同樣可以在Windows上使用的Plink(隨膩子)來完成的機器:
plink -N -L localport:dbserver:dbport [email protected]
執行此操作在兩臺機器上(本地計算機和你有權訪問的服務器)鏈接SSH隧道。例如:
連接服務器(假設Linux的):
ssh -N -L1521:dbserver:1521 [email protected]
你的PC:
plink -N -L 1521:connectionserver:1521 [email protected]
中的tnsnames.ora條目必須看起來像你正在運行的本地數據庫,例如
prodoverssh =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = prod)
)
)
謝謝,我做了類似的事情 – 2010-09-08 11:59:40
我面臨着非常類似的設置,但現在是「我的身邊」(在綠色圓圈)的網關。我也想通信到oracle服務器。但是,我不能使用你的推薦,因爲我不是在管理「ORACLE SERVER」,而只是在原始問題的網絡模式上的「GATEWAY」。我只能從「GATEWAY」的「ORACLE SERVER」計算機(在1521上收聽)與Oracle服務器進行通信,客戶端同時安裝在「GATEWAY」和「我的電腦」上。對我有一些解決方案嗎? – 2012-11-08 19:46:46
j_maly:如果數據庫服務器接受來自網關的連接,則更容易。從PC上運行'plink -N -L 1521:dbserver:1521 gwuser @ gateway'。 – 2012-11-09 07:52:15