首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> Oracle 資料庫 >> Oracle 資料庫基礎

Oracle 密碼遺失兩大解鎖方案:OS 驗證與密碼檔重建

     編輯:Oracle 資料庫基礎

方案一:OS 驗證繞過密碼(需 OS 管理員權限)

  1. 確認 sqlnet.ora 含 SQLNET.AUTHENTICATION_SERVICES=(NTS)(Windows)或 (NONE)(Linux/Unix 使用 OS 群組)。
  2. 以 OS DBA 群組使用者(如 oracle、Windows ORA_DBA 群組成員)登入:
sqlplus / AS SYSDBA
-- 或
sqlplus /nolog
SQL> CONNECT / AS SYSDBA
  1. 成功進入後重設密碼:
ALTER USER system IDENTIFIED BY new_pwd;
ALTER USER sys IDENTIFIED BY new_pwd;

方案二:重建密碼檔(適用 EXCLUSIVE 模式)

  1. 記錄現有特權使用者:SELECT * FROM v$pwfile_users;
  2. 關閉資料庫:SHUTDOWN IMMEDIATE;
  3. 刪除舊密碼檔:rm $ORACLE_HOME/dbs/PWD.ora
  4. 重建:orapwd file=$ORACLE_HOME/dbs/PWD.ora password=new_sys_pwd entries=20
  5. 啟動實例至 MOUNT:STARTUP MOUNT
  6. 以新 SYS 密碼連線並授權特權使用者:
CONNECT sys/new_sys_pwd AS SYSDBA
ALTER DATABASE OPEN;
GRANT SYSDBA TO admin_user;  -- 依步驟1記錄逐一授權
  1. 設定參數並重啟:
ALTER SYSTEM SET remote_login_passwordfile=EXCLUSIVE SCOPE=SPFILE;
SHUTDOWN IMMEDIATE; STARTUP;

適用場景比較

方案適用條件停機時間風險
OS 驗證OS 帳號在 DBA 群組、sqlnet.ora 正確無低
重建密碼檔OS 驗證失敗、參數為 EXCLUSIVE需停機中(需完整重新授權)

預防建議

  • 使用密碼管理工具儲存 SYS/System 密碼。
  • 建立備用特權使用者(如 dbadmin)並授 SYSDBA,避免單點失效。
  • 定期演練密碼恢復流程。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved