Oracle 數據庫核心賬號密碼遺失是 DBA 常見場景。本文提供三級重置方案,從普通用戶到 SYS/SYSTEM 雙遺失均有解。
-- 以 SYS/SYSTEM 登入
CONN SYS/Password AS SYSDBA;
-- 或
CONN SYSTEM/Password;
-- 修改目標用戶密碼
ALTER USER TargetUser IDENTIFIED BY NewPassword;
-- 密碼規則:不能純數字、不能數字開頭,否則 ORA-00988
-- 忘記 SYSTEM,用 SYS 登入
CONN SYS/Password AS SYSDBA;
ALTER USER SYSTEM IDENTIFIED BY NewPassword;
-- 忘記 SYS,用 SYSTEM 登入
CONN SYSTEM/Password;
ALTER USER SYS IDENTIFIED BY NewPassword;
利用 ORAPWD 工具重新生成密碼文件 (orapw),重置 SYS 密碼 (SYSTEM 同步重置)。
ORACLE_HOME\bin 目錄。orapwd file=ORACLE_HOME\database\orapw.ora password=NewPassword entries=10 force=y
file:密碼文件完整路徑 (通常 $ORACLE_HOME/dbs/orapw 或 %ORACLE_HOME%\database\PWD.ora )。password:新 SYS 密碼。entries:最大用戶數預留。force=y:覆蓋現有文件。CONN SYS/NewPassword AS SYSDBA。| 項目 | 說明 |
|---|---|
| 密碼文件位置 | Unix/Linux: $ORACLE_HOME/dbs/orapw;Windows: %ORACLE_HOME%\database\PWD (舊版) 或 orapw (新版)。 |
| 遠程登入 | 需 REMOTE_LOGIN_PASSWORDFILE=EXCLUSIVE/SHARED (spfile/init.ora),NONE 時密碼文件不生效。 |
| Data Guard/主備 | 主庫重置後,**必須同步複製密碼文件到備庫**,否則備庫無法以 SYSDBA 登入、同步中斷。 |
| 其他用戶 | ORAPWD 僅重置 SYS 密碼,**不影響** SYSTEM 及其他用戶密碼 (但 SYSTEM 通常同步修改)。 |
| 12c+ 多租戶 | CDB 根容器用 orapwd,PDB 普通用戶仍用 ALTER USER。 |
SYSDBA),避免直接用 SYS/SYSTEM 日常操作。AUDIT CREATE SESSION BY SYS, SYSTEM 監控核心賬號登入。