ssh跳转plsql

场景描述:
    有一台拥有公网IP的服务器,提供SSH服务,端口22,可远程连接;该服务器拥有多网卡,配有内网IP;
    从数据安全角度内网的Oracle未提供公网服务,但SSH服务器所在内网端可以访问数据库服务器;
    
     现在需要访问数据库服务器,进行数据操作,首先想到的方法:在SSH服务器上安装Oracle客户端,使用SQL*PLUS访问数据库;或者使用一些第三方数据库管理客户端;
    无论是使用Oracle客户端还是第三方数据库管理端,都涉及到软件的安装、配置,这都有可能对现有机器环境造成影响,而且还不一定有在SSH服务器上安装软件的权限,怎么办?
     其实很多SSH客户端都提供端口转发功能,比如SecureCRT,就可以这么操作:
     1,先用SecureCRT 建立一个会话,选择“选项” 中的 “会话选项”-> "连接"->“端口转发”
        选择 【添加 】:
         【名称】端口转发  
         【手工选择允许访问的本地 IP地址】 127.0.0.1
         【端口】1521    (找一个本机并未使用的端口)
                 【远程】 ->【目的主机不同于SSH服务】填数据库的IP 地址
                                   【端口】 填Oracle的监听端口 如1521
 
2,现在就可以用SecureCRT 连接刚才新建的会话了,连接上SSH 
 
3,修改本机的ORACLE TNSNAMES.ORA,添加配置:
TNS_NAME =
  (DESCRIPTION =
    (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521)) )
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = orcl)
    )
  )
   其中SERVICE_NAME 为数据库服务监听的真实SERVER_NAME
   打开PL/SQL进行登录测试,成功!
   整个流程:
      PL/SQL--->127.0.0.1:1521---ssh -->SSH服务器---转发--->数据库服务器:1521

你可能感兴趣的:(plsql)