使用SecureCRT的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

    

    当前使用SecureCRT版本V6.2.3,不同版本可能会存在不同的配置选项名称

你可能感兴趣的:(使用SecureCRT的SSH端口转发,使用PLSQL访问内网数据库)