遺忘密碼按權限層級分為三類:一般用戶、SYSTEM、SYS。本文提供分類處理標準流程,並針對全遺忘情況給出 ORAPWD 緊急恢復方案,確保 DBA 在各種權限情境下都能快速恢復存取。
CONN SYS/Password AS SYSDBA;
-- 或 CONN SYSTEM/Password
ALTER USER app_user IDENTIFIED BY NewPass123;
密碼規則:不能純數字、不能數字開頭,否則 ORA-00988。建議:字母開頭 + 數字 + 特殊字元,長度 ≥ 8。
CONN SYS/Password AS SYSDBA;
ALTER USER SYSTEM IDENTIFIED BY NewPass123;
CONN SYSTEM/Password;
ALTER USER SYS IDENTIFIED BY NewPass123;
注意:SYS 密碼變更需同步更新密碼檔 (見場景四),否則遠端 SYSDBA 登入失敗。
# Windows
C:\> SET ORACLE_SID=ORCL
C:\> orapwd file=%ORACLE_HOME%\database\PWDORCL.ora password=NewPass123 entries=10
# Linux/Unix
$ export ORACLE_SID=ORCL
$ orapwd file=$ORACLE_HOME/dbs/orapwORCL password=NewPass123 entries=10
關鍵點:
entries 預估最大 SYSDBA/OPER 使用者數 (含未來擴充)SHUTDOWN IMMEDIATESTARTUP MOUNT (需密碼檔有效)STARTUP NOMOUNT → 重建控制檔/密碼檔| 操作 | 資料庫密碼 | 密碼檔 | 遠端 SYSDBA |
|---|---|---|---|
| ALTER USER SYS IDENTIFIED BY | ✓ 更新 | ✓ 自動同步 (11g+) | ✓ 生效 |
| ORAPWD 重建 | ✗ 不變 | ✓ 更新 | ✓ 生效 (但資料庫密碼舊) |
| ALTER USER SYS + ORAPWD | ✓ 更新 | ✓ 更新 | ✓ 完全同步 |
最佳實踐:永遠使用 ALTER USER SYS IDENTIFIED BY,11g+ 會自動同步密碼檔;僅在密碼檔損壞/遺失時使用 ORAPWD。
CONN SYS/NewPass AS SYSDBA 成功SQLPLUS SYS/NewPass@TNS AS SYSDBA 成功CREATE USER dba_admin IDENTIFIED BY ...; GRANT DBA TO dba_admin; 避免日常使用 SYSPASSWORD_LIFE_TIME / PASSWORD_GRACE_TIME 在 Profile 中設定CONFIGURE CONTROLFILE AUTOBACKUP ON 含密碼檔