异地访问Oracle数据库的解决方案:利用内网穿透实现PL/SQL远程连接的建议与步骤

2023-08-28 16:53:26

在这里插入图片描述

在这里插入图片描述

​ 小月糖糖主页
在强者的眼中,没有最好,只有更好。
移动开发领域优质创作者,阿里云专家博主

前言

Oracle,是甲骨文公司的一款关系数据库管理系统,它在数据库领域一直处于领先地位。可以说Oracle数据库系统是世界上流行的关系数据库管理系统,系统可移植性好、使用方便、功能强,适用于各类大、中、小微机环境。它是一种高效率的、可靠性好的、适应高吞吐量的数据库方案。

本次教程我们来在本地搭建Oracle数据库,并通过[cpolar内网穿透](cpolar - 安全的内网穿透工具),将本地端口映射到公网,实现公网环境下通过PL/SQL工具进行远程连接访问。

1. 数据库搭建

安装oracle 数据库,进入官方下载,这里安装选着的是官方19C的版本

选择下载微软windows 64位下载

2023021411601

下载好后解压安装,安装过程中需要设置口令,口令就是登录时所需的密码

2023021411602

安装好后打开PL/SQL

2023021411603

打开后输入用户名:system,密码是上面设置的口令,出现sql表示登录成功

2023021411604

2. 内网穿透

目前该数据库只能在局域网内被访问,不过我们可以使用cpolar内网穿透工具,将内网的oracle数据库映射到公网上,实现远程访问。

2.1 安装cpolar内网穿透

cpolar官网:https://www.cpolar.com/

进入cpolar官网下载页面,下载windows安装包到本地然后解压一路默认安装即可

20230214113215

2.2 创建隧道映射

cpolar安装成功后,双击打开cpolar【或者在浏览器上访问本地9200端口 127.0.0.1:9200】,使用cpolar邮箱账号登录 web UI管理界面,如果还没有注册cpolar账号的话,点击免费注册,会跳到cpolar官网注册一个账号就可以了.

20230214113806

登录成功后,点击左侧仪表盘的隧道管理——创建隧道,创建一个tcp协议的隧道指向本地1521端口(oracle默认端口)

  • 隧道名称:可自定义,注意不要与已有的隧道名称重复
  • 协议:tcp
  • 本地地址:1521
  • 域名类型:免费选择随机域名
  • 地区:默认China top即可

点击创建

2023021411605

隧道创建成功后,点击左侧的状态——在线隧道列表,可以看到,刚刚创建的隧道已经有生成了相应的公网地址,将其复制下来

2023021411606

3. 公网远程访问

打开PLSQL图形化工具,输入tcp公网地址,输入用户名:systm 和密码,密码是创建数据库时设置的口令

2023021411607

连接后,执行查看系统表,出现数据表示成功

2023021411608·

4. 配置固定TCP端口地址

由于以上创建的隧道是随机地址隧道,地址会在24小时内变化,为了使连接更加稳定,需要固定tcp连接地址。

4.1 保留一个固定的公网TCP端口地址

登录cpolar官网,点击左侧的预留,选择保留的TCP地址,我们先来为远程Oracle保留一个固定端口地址。

  • 地区:选择China VIP
  • 描述:即备注,可自定义填写

点击保留

2023021411610

地址保留成功后,系统会生成相应的固定公网地址,将其复制下来

2023021411611

4.2 配置固定公网TCP端口地址

在浏览器上访问9200端口,http://127.0.0.1:9200/,登录cpolar web ui管理界面,点击左侧仪表盘的隧道管理——隧道列表,找到svn隧道,点击右侧的编辑

2023021411612

修改隧道信息,将保留成功的固定tcp地址配置到隧道中

  • 端口类型:修改为固定tcp端口
  • 预留的tcp地址:填写保留成功的地址

点击更新

2023021411613

隧道更新成功后,点击左侧仪表盘的状态——在线隧道列表,找到我的世界隧道,可以看到公网地址已经更新成为了固定tcp地址。

2023021411614

4.3 测试使用固定TCP端口地址远程Oracle

再次打开PLsql,使用固定tcp地址连接

2023021411615

登录后执行查询系统表格select * from DBA_TABLES,出现数据表示连接成功

2023021411616

更多推荐

面向面试知识-Redis

面向面试知识-Redis什么是Redis运行于内存的基于key-value的非关系型数据库。一款开源的内存数据结构存储,用作数据库、缓存、消息代理等。(可以基于Redis实现分布式锁、以及消息队列)发布订阅??对数据类型的操作都是原子性的,因为执行命令由单线程负责,不存在并发竞争的问题。除此之外,Redis还支持:Re

日志的艺术

良好的日志是运维、开发人员排查问题的好工具,本文建议定义JSON格式的结构化日志格式,从而有效优化人工以及机器排查日志的效能,并能方便创建机器索引。原文:TheArtofLoggingViktorTalashuk@Unsplash从历史上看,日志对于诊断应用程序和基础设施性能非常重要,被广泛应用于业务仪表板的可视化和性

MySQL数据库详解 五:用户管理

文章目录1.数据库的用户管理1.1新建用户1.2重命名用户1.3删除用户1.4修改用户密码1.5忘记用户密码的解决方法1.6数据库用户授权1.6.1授权用户权限类别1.6.2添加权限1.6.2撤销权限2.mysql命令1.数据库的用户管理1.1新建用户createuser'用户名'@'来源地址'[identifiedb

天线原理【1】 天线辐射的物理过程

1前言前面讲以振子方程入手分析电磁场问题的解的时候,有网友发信息说这和天线有什么关系,怎么从振子入手分析天线;那我就开始写几次关于天线的。有一种说法是,能给任何人讲懂的理论,才说明你真的懂了。对天线部分我曾经很有信心,觉得能给任何人讲懂;因为我最多的思考是天线、所有关于振子方程、关于对电磁场问题解的理解,都是从天线出发

【运维篇】三、SLF4J与Logback

文章目录0、Java的门面设计模式1、SLF4J2、作用3、调试4、SpringBoot采用SLF4J+Logback5、切换SpringBoot的日志框架6、logback的配置加载7、logback的配置组成8、logback之logger9、logback之appender10、logback之pattern11

mianshiyan资料汇总(整理后)

前端优化方式css3html5Turbopackes6的新特性BigInt微前端cdnWebComponent作用域和执行上下文JS的堆栈内存分配js垃圾回收机制,v8的垃圾回收机制,v8引擎为啥快前端路由hash和history的区别前端攻击反爬虫加密跨域cookiesessionjwt相关Js闭包实际的用途原型链防

探究Nginx应用场景

1静态资源Nginx是一个流行的Web服务器和反向代理服务器,它可以用于托管静态资源。下面是一个简单的案例,展示了如何使用Nginx来提供静态资源。假设你有一个名为example.com的域名,并且你希望使用Nginx来托管位于/var/www/html目录下的静态资源。配置静态资源路径:在Nginx中,可以使用roo

springboot中注解介绍

springboot中的bean在Java编程语言中,"Bean"通常指的是JavaBean,它是一种符合特定规范的普通Java类。JavaBean类具有以下特点:封装性:JavaBean使用私有的字段(成员变量)和公共的Getter和Setter方法来封装数据,以实现对属性的访问控制。无参构造函数:JavaBean通

Spring之IOC容器(依赖注入)&基本介绍&基本配置&多模块化

标题一:什么是spring,它能够做什么?Spring是一个开源框架,它由RodJohnson创建。它是为了解决企业应用开发的复杂性而创建的。Spring使用基本的JavaBean来完成以前只可能由EJB完成的事情。然而,Spring的用途不仅限于服务器端的开发。从简单性、可测试性和松耦合的角度而言,任何Java应用都

SpringMVC之JSON数据返回&异常处理机制

目录前言一、JSON数据返回1.导入依赖2.配置spring-mvc.xml3.使用@ResponseBody注解4.Jackson4.1.介绍4.2.常用注解二、异常处理机制1.为什么要全局异常处理2.异常处理思路3.SpringMVC异常分类4.综合案例4.1.异常处理方式一4.2.异常处理方式二4.3异常处理方式

== 和 equals 的区别

😀前言我们首先介绍了==运算符,它主要用于比较对象的引用地址。我们明确了它适用于基本数据类型和引用类型,以及其默认行为。然后,我们详细讨论了equals方法,它是一个方法,通常用于比较对象的内容。我们强调了需要在自定义类中重写equals方法以便实现对象内容的比较,同时提到了一些重写equals方法时需要遵循的约定�

热文推荐