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

Oracle 19C创建新用户登录报ORA-01017错误如何解决?

ORA-01017报错排查步骤(Oracle 19C PDB环境)

1. 验证登录连接的目标容器是否正确

  • 你创建用户的位置是orclpdb这个PDB,登录时如果没指定PDB服务名,默认会连到CDB根容器,CDB里没有你创建的该用户,自然会触发报错。
  • 检查登录命令格式,正确的PDB登录方式必须指定PDB的服务名,示例:
    -- 本地SQL Plus直接登录指定PDB
    sqlplus 用户名/密码@orclpdb
    -- 先登录CDB再切换容器登录验证
    sqlplus / as sysdba
    alter session set container=orclpdb;
    conn 用户名/密码
    
  • 先执行lsnrctl status命令查看监听中是否已经注册了orclpdb的服务名,确认服务处于正常运行状态;如果用TNS连接,确认tnsnames.ora配置文件中已经配置了orclpdb的连接项,指向正确的IP、端口和服务名。

2. 验证用户创建逻辑是否符合PDB规范

  • Oracle 12C及以上版本的PDB中创建普通用户不需要加C##前缀(只有CDB公共用户需要此前缀),确认你创建用户的语句没有写错前缀,正确创建逻辑示例:
    alter session set container=orclpdb;
    create user 用户名 identified by 密码 default tablespace 业务表空间名 temporary tablespace temp;
    grant create session to 用户名; -- 至少要授予会话权限才能登录,全权限授予后也需要确认权限生效
    
  • 执行以下语句验证PDB中确实存在该用户:
    alter session set container=orclpdb;
    select username from dba_users where username='你的用户名大写';
    
    注意Oracle用户名默认会自动转大写存储,如果你创建时加了双引号指定小写用户名,登录时也必须带双引号输入用户名才能匹配。

3. 验证密码大小写与参数配置

  • 检查sec_case_sensitive_logon参数是否开启,该参数控制密码大小写敏感:
    show parameter sec_case_sensitive_logon;
    
    如果参数值为false,密码会自动转大写匹配,如果你设置的密码包含大小写,需要对应调整输入规则。
  • 如果之前修改过密码,确认没有遗漏commit操作,也可以直接重置密码后重试:
    alter session set container=orclpdb;
    alter user 用户名 identified by 新密码;
    

4. 验证PDB运行状态是否正常

  • 你之前执行了startup启动PDB,需要确认PDB处于可读写状态:
    show pdbs;
    
    如果状态不是READ WRITE,需要重新启动PDB:
    alter pluggable database orclpdb open;
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.23 18:54:00