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

Oracle 密碼遺失完整解決方案:SYSDBA 登入與密碼檔重建兩大法

     編輯:Oracle 資料庫相關知識

前言

DBA 遺失 SYS/SYSTEM 密碼是常見情境。本文提供兩種標準解決路徑:作業系統驗證登入與密碼檔重建。

方法一:作業系統驗證登入(需 OS DBA 群組權限)

步驟 A:SQL*Plus 直接連線

sqlplus "/ as sysdba"
SQL> STARTUP;
SQL> ALTER USER system IDENTIFIED BY new_password;

步驟 B:若提示輸入密碼,修改 sqlnet.ora

# $ORACLE_HOME/network/admin/sqlnet.ora
SQLNET.AUTHENTICATION_SERVICES = (NTS)  -- Windows
# 或 (NONE)  -- Unix/Linux 依賴 OS 群組驗證
# 修改後重啟監聽器與資料庫

重啟後即可用 sqlplus "/ as sysdba" 免密碼進入。

步驟 C:替代連線語法

sqlplus /nolog
SQL> CONNECT / AS SYSDBA

方法二:重建密碼檔

  1. 查詢現有權限用戶:SELECT * FROM V$PWFILE_USERS; 記錄具 SYSDBA/SYSOPER 權限的用戶。
  2. 關閉資料庫:SHUTDOWN IMMEDIATE;
  3. 刪除舊密碼檔:$ORACLE_HOME/dbs/PWD.ora(Unix)或 database/PWD.ora(Windows)。
  4. 建立新密碼檔:
    orapwd file=$ORACLE_HOME/dbs/PWD.ora password=new_sys_password entries=5
  5. 以內部身分啟動:
    STARTUP NOMOUNT;
    -- 或 CONNECT SYS/new_password AS SYSDBA
  6. 重建用戶並授權:
    GRANT SYSDBA TO user_name;(依步驟 1 記錄補授)。
  7. 設定密碼檔模式:
    ALTER SYSTEM SET REMOTE_LOGIN_PASSWORDFILE=EXCLUSIVE SCOPE=SPFILE;
    重啟生效。

適用場景選擇

  • OS 認證正常 → 方法一最快(秒級)。
  • OS 認證失效/密碼檔損毀/需異地遠程管理 → 方法二徹底。

小結

平時應確保 OS DBA 群組配置正確、sqlnet.ora 設定 NTS 或 NONE、定期備份密碼檔,關鍵時刻才能從容應對。

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