You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

IntelliJ连接Oracle报ORA-01017 同账号SQL Developer以DBA可连

Oracle连接ORA-01017错误排查(SQL Developer DBA登录成功、IntelliJ报错场景)

按触发概率从高到低排查:

  • 优先核对连接角色配置
    你在SQL Developer中选择「以DBA身份连接」时,实际是连接时指定了SYSDBA/SYSOPER特殊内部角色,IntelliJ的Oracle连接默认使用NORMAL普通用户角色,角色不匹配时即使账号密码完全正确,也会抛出ORA-01017错误。
    修正操作:打开IntelliJ对应数据库连接的配置面板,切换到「高级」选项卡,找到internal_logon参数,参数值填写sysdba(如果SQL Developer里选的是SYSOPER身份就填sysoper),保存配置后重试连接即可,这是该场景下90%以上问题的根因。
  • 检查JDBC驱动版本兼容性
    SQL Developer自带与目标库适配的Oracle JDBC驱动,IntelliJ首次连接时自动下载的驱动如果和数据库大版本不匹配(比如用ojdbc8驱动连接21c版本库、或用高版本ojdbc连接11g及以下老版本库),会出现密码校验逻辑异常,误报用户名密码错误。
    修正操作:在SQL Developer中执行select * from v$version确认数据库准确版本,在IntelliJ的驱动配置页替换为大版本完全匹配的ojdbc驱动后重试。
  • 核对连接目标与用户名格式
    配置错误导致连接到错误的数据库实例/容器时,也会报该错误:
    • 连接12c及以上版本的CDB多租户架构库时,如果目标是可插拔数据库(PDB),普通用户需要确认连接串中填写的是对应PDB的服务名,不要误填CDB根容器的SID/服务名,否则根容器中不存在对应用户会直接抛错
    • 逐字段对齐SQL Developer中的连接参数,不要把服务名(Service Name)填到SID输入框,也不要出现用户名前后带多余空格的低级错误
  • 排查密码特殊字符转义问题
    如果密码包含@、#、&这类特殊字符,部分旧版本IntelliJ的数据库插件拼接JDBC URL时不会自动做转义处理,会把特殊字符后的内容识别为连接串的一部分,导致实际传递给数据库的密码和输入的不一致。
    验证方式:临时将测试账号密码改为纯字母数字组合,若连接成功即可确认是转义问题,可通过升级IDEA数据库插件版本、或手动填写完整JDBC连接串的方式规避。

内容的提问来源于stack exchange,提问作者TEODOR MAELI

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.01 03:39:43