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

Oracle 21c XE:SqlPlus可连接但SQL Developer提示用户名/密码无效

解决Docker部署Oracle 21c XE后SQL Developer无法连接新用户的问题

以下是针对该问题的排查和解决步骤:

  • 核对SQL Developer连接参数
    确保连接配置完全正确:

    • 连接类型选择Basic
    • 主机填localhost(本地Docker)或宿主机IP(远程Docker)
    • 端口填Docker映射的宿主机端口(默认是1521,需确认启动容器时的-p参数,比如-p 1521:1521)
    • 服务名/SID填XE(Oracle 21c XE默认服务名和SID都是这个,部分SQL Developer版本需优先选择服务名而非SID)
  • 检查用户身份验证配置
    在sqlplus中执行以下语句确认用户的验证类型:

    SELECT username, authentication_type FROM dba_users WHERE username = '你的用户名';
    

    若结果不是PASSWORD,重新创建用户并显式指定密码验证:

    CREATE USER 你的用户名 IDENTIFIED BY 你的密码 DEFAULT TABLESPACE USERS QUOTA UNLIMITED ON USERS;
    GRANT CONNECT, RESOURCE TO 你的用户名;
    
  • 确认Docker端口映射正确性
    查看容器的端口映射状态:

    docker ps --format "table {{.Names}}\t{{.Ports}}"
    

    确保Oracle 1521端口已正确映射到宿主机,若映射了非默认端口,SQL Developer中需填写对应宿主机端口。

  • 验证密码大小写敏感性
    Oracle 12c+默认开启密码大小写敏感,确认SQL Developer中输入的密码大小写与创建用户时完全一致。若需关闭大小写敏感,以sysdba身份执行:

    ALTER PROFILE DEFAULT LIMIT PASSWORD_VERIFY_FUNCTION NULL;
    ALTER SYSTEM SET SEC_CASE_SENSITIVE_LOGON=FALSE;
    

    之后重启Docker容器:

    docker restart 你的容器名
    
  • 检查用户账号状态
    在sqlplus中执行以下语句查看账号状态:

    SELECT username, account_status FROM dba_users WHERE username = '你的用户名';
    

    若状态为LOCKED或EXPIRED,执行解锁并重置密码:

    ALTER USER 你的用户名 ACCOUNT UNLOCK;
    ALTER USER 你的用户名 IDENTIFIED BY 你的密码;
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 02:18:19