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

Oracle用户密码过期但SYS执行ALTER USER时报ORA-01918问题求助

Oracle密码过期但SYS提示用户不存在的问题解决

问题原因

你登录时使用的服务名指向的是可插拔数据库(PDB),目标用户是在这个PDB下创建的;而你以SYS身份登录时默认进入的是容器数据库(CDB)的根容器(CDB$ROOT),根容器中不存在该普通用户,因此执行ALTER USER会触发ORA-01918错误。

解决步骤

  • 确认当前SYS会话所在容器:

    SHOW CON_NAME;
    

    若返回CDB$ROOT,说明处于根容器,需切换到目标PDB。

  • 查询所有可插拔数据库的状态:

    SELECT NAME, OPEN_MODE FROM V$PDBS;
    

    找到用户所在的PDB(例如PDBORCL),若其状态不是READ WRITE,先打开该PDB:

    ALTER PLUGGABLE DATABASE PDBORCL OPEN READ WRITE;
    
  • 切换到目标PDB:

    ALTER SESSION SET CONTAINER = PDBORCL;
    
  • 修改用户密码:

    ALTER USER username IDENTIFIED BY "newpassword";
    

    注:若密码包含特殊字符或需区分大小写,必须用双引号包裹;同时需符合数据库的密码复杂度规则。

  • (可选)设置密码永不过期并解锁账户:

    ALTER USER username IDENTIFIED BY "newpassword" ACCOUNT UNLOCK PASSWORD EXPIRE NEVER;
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.20 13:52:39