【V4】Oracle 数据库在 JumpServer 中的纳管与连接指南


飞致云 发布于 2026-03-30 / 0 阅读 / 0 评论 /

本文将基于 Oracle Database 23ai Free 镜像部署一个 Oracle 数据库并演示如何使用 JumpServer 进行纳管。

该示例仅作演示使用,生产环境容器化部署请使用其他方式或做数据持久化。

参考 Oracle 官方文档:https://container-registry.oracle.com/ords/f?p=113:4:8232848927451


一、部署 Oracle

docker pull container-registry.oracle.com/database/free:latest-lite	#精简镜像 建议使用
docker pull container-registry.oracle.com/database/free:latest      #可选 完整镜像 文件较大 10G

#启动容器 BD_PASSWD后输入设置的密码
docker run -d --name oracle -p 1521:1521 -e DB_PASSWD=Your_Password container-registry.oracle.com/database/free:latest-lite:latest

#本地测试连接
docker exec -it oracle sqlplus sys/Your_Password@FREE AS SYSDBA



二、纳管至 JumpServer

1.以SYSDBA身份用户进行连接

JumpServer默认创建了一个 Oracle 平台,但该平台的协议设置未开启SYSDBA身份用户登录,若使用SYSDBA身份用户,需要克隆一个 Oracle 平台,协议设置中启用该选项。


创建完成后,前往控制台创建 Oracle 资产,选择为刚才创建的平台,添加使用的特权账户 sys 即完成纳管。

协议使用的端口、默认数据库依据实际部署的环境进行配置。

2.使用普通账号进行连接

使用默认的 Oracle 平台创建资产,即协议设置不勾选使用 SYSDBA,其余设置同上根据实际环境配置即可正常连接。

三、使用 JumpServer 连接 Oracle

JumpServer 提供 Web、客户端(X-PACK)、远程应用三种连接方式。


Web方式即直接网页打开会话窗口,命令行或者图形化连接进行操作。

优点:零客户端依赖、轻量便捷、团队共享友好。 缺点:图形化操作能力有限,大结果集或高并发场景下易卡顿。 适用场景:日常轻量操作、临时 / 应急场景、团队协作。


客户端连接方式基于 Magnus 组件,为企业版功能,可以由 JumpServerClient 拉起本地客户端工具或提供连接向导。

优点:支持 Oracle 高版本(11g+)、OCI 连接方式(Oracle 原生调用接口),兼容性更强。可拉起本地客户端工具(如 PL/SQL Developer),利用本地算力处理大数据(如数据迁移、存储过程调试)。

缺点:需要手动配置本地工具和环境。

适用场景:企业级 Oracle 运维、高版本 Oracle 连接、需本地客户端加速的场景。


远程应用方式即调起远程应用发布机上安装的客户端工具如 DBeavor 在网页打开窗口进行连接。

优点:开箱即用,无需手动配置本地环境、规避本地环境差异(如客户端版本冲突、驱动缺失)。

缺点:需要管理员配置好远程应用功能、需要一台单独的Windows机器提供服务

适用场景:需使用完整图形化工具的场景、本地环境受限(如无法安装客户端的隔离环境)、团队工具版本统一


四、支持矩阵

数据库版本NavicatWindows SQL Plus(21.7.0.0.0)Windows SQL Plus(19.16)Linux SQL Plus(21.8)Linux SQL Plus(19.17)
Oracle 11g Enterprise Edition (11.2.0.1.0)×××××
Oracle 11g Express Edition(11.2.0.2.0)××
Oracle 12c(12.1.0.2.0)××
Oracle 19c(19.3.0.0.0 )××
Oracle RAC(12.2.0.1.0)×××××

五、常见问题及解决

1.如何获取 SID 或 Service Name ?

#使用SYSDBA账户连接
SELECT instance_name FROM v$instance; #查询SID
SELECT name FROM v$database;		  #查询Service Name


2.连接时提示 “ORA-01017: invalid username/password; logon denied

可能原因:JumpServer 配置的 Oracle 账号 / 密码与实际不符(含大小写问题,Oracle 12c+ 密码默认区分大小写);Oracle 账号因多次密码错误被锁定。


3.执行 SQL 时提示 “字符集不匹配” 或中文乱码

可能原因:Oracle 数据库字符集与 JumpServer 客户端字符集不一致(如 Oracle 用 AL32UTF8,JumpServer 用 GBK)。

解决方法:

#连接Oracle执行如下sql
SELECT parameter, value FROM nls_database_parameters WHERE parameter IN ('NLS_CHARACTERSET', 'NLS_NCHAR_CHARACTERSET');
#登录JumpServer服务器,设置环境变量 永久生效需写入/etc/profile
export NLS_LANG=AMERICAN_AMERICA.AL32UTF8 # 替换为 Oracle 的 NLS_CHARACTERSET






是否对你有帮助?