首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

Oracle 10g/11g SYS 密碼遺忘重置完整指南

     編輯:Oracle 資料庫相關知識

遺忘 SYS 密碼時,可透過密碼檔 orapwd 工具重建,無需重裝資料庫。

核心原理

Oracle 使用 $ORACLE_HOME/dbs/orapw (Linux) 或 %ORACLE_HOME%\database\PWD.ora (Windows) 儲存 SYS/SYSDBA 密碼雜湊。重建此檔案即可重置密碼。

Windows 環境步驟

  1. 找到密碼檔:dir %ORACLE_HOME%\database\PWD*.ora
  2. 備份:copy PWDorcl.ora PWDorcl.ora.bak
  3. 重建:
    orapwd file=%ORACLE_HOME%\database\PWDorcl.ora password=NewPass123 entries=10 force=y
  4. 重啟資料庫服務 (Windows 服務 OracleServiceORCL) 或 shutdown immediate / startup。

Linux/Unix 環境步驟

  1. ls -l $ORACLE_HOME/dbs/orapw*
  2. cp $ORACLE_HOME/dbs/orapworcl $ORACLE_HOME/dbs/orapworcl.bak
  3. orapwd file=$ORACLE_HOME/dbs/orapworcl password=NewPass123 entries=10 force=y
  4. sqlplus / as sysdba <<< 'shutdown immediate; startup;'

參數說明

  • file:密碼檔完整路徑 (必須與現有檔名一致)。
  • password:新 SYS 密碼 (區分大小寫,11g+ 支援大小寫敏感)。
  • entries:最大 SYSDBA/OPER 使用者數 (建議 ≥ 實際 DBA 人數)。
  • force=y:覆蓋既有檔案。

驗證

sqlplus sys/NewPass123@orcl as sysdba
# 成功登入即重置完成

注意事項

  • **Data Guard 環境**:Primary 重建密碼檔後,需 scp 同步至所有 Standby 並重啟。
  • **RAC 環境**:在所有節點執行相同步驟,確保密碼檔一致。
  • 11g+ 預設大小寫敏感,密碼建議包含大小寫、數字、特殊字元。
  • 若啟用 REMOTE_LOGIN_PASSWORDFILE=EXCLUSIVE (預設),重建即時生效;若為 SHARED,需設為 EXCLUSIVE 後重啟。

替代方案 (無需重啟)

若只遺忘應用使用者密碼 (非 SYS),以 SYSDBA 登入直接修改:

ALTER USER app_user IDENTIFIED BY newpass;

掌握 orapwd 重建流程,SYS 密碼遺忘不再是災難。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved