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

Oracle 忘記 SYS/SYSTEM/SCOTT 密碼的三種重置方案

     編輯:關於SqlServer

Oracle 數據庫核心賬號密碼遺失是 DBA 常見場景。本文提供三級重置方案,從普通用戶到 SYS/SYSTEM 雙遺失均有解。

場景一:忘記普通用戶密碼 (SYS/SYSTEM 可用)

-- 以 SYS/SYSTEM 登入
CONN SYS/Password AS SYSDBA;
-- 或
CONN SYSTEM/Password;

-- 修改目標用戶密碼
ALTER USER TargetUser IDENTIFIED BY NewPassword;
-- 密碼規則:不能純數字、不能數字開頭,否則 ORA-00988

場景二:忘記 SYSTEM 密碼 (SYS 可用) / 忘記 SYS 密碼 (SYSTEM 可用)

-- 忘記 SYSTEM,用 SYS 登入
CONN SYS/Password AS SYSDBA;
ALTER USER SYSTEM IDENTIFIED BY NewPassword;

-- 忘記 SYS,用 SYSTEM 登入
CONN SYSTEM/Password;
ALTER USER SYS IDENTIFIED BY NewPassword;

場景三:SYS 與 SYSTEM 密碼雙雙遺失 (終極方案)

利用 ORAPWD 工具重新生成密碼文件 (orapw.ora),重置 SYS 密碼 (SYSTEM 同步重置)。

步驟

  1. 打開命令提示符 (管理員)。
  2. 定位到 ORACLE_HOME\bin 目錄。
  3. 執行:
    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:覆蓋現有文件。
  4. 重啟 Oracle 服務 (Windows: `net stop OracleService` & `net start ...`;Linux: `srvctl stop/start database -d `)。
  5. 以新密碼登入:CONN SYS/NewPassword AS SYSDBA。

關鍵注意事項

項目說明
密碼文件位置Unix/Linux: $ORACLE_HOME/dbs/orapw;Windows: %ORACLE_HOME%\database\PWD.ora (舊版) 或 orapw.ora (新版)。
遠程登入需 REMOTE_LOGIN_PASSWORDFILE=EXCLUSIVE/SHARED (spfile/init.ora),NONE 時密碼文件不生效。
Data Guard/主備主庫重置後,**必須同步複製密碼文件到備庫**,否則備庫無法以 SYSDBA 登入、同步中斷。
其他用戶ORAPWD 僅重置 SYS 密碼,**不影響** SYSTEM 及其他用戶密碼 (但 SYSTEM 通常同步修改)。
12c+ 多租戶CDB 根容器用 orapwd,PDB 普通用戶仍用 ALTER USER。

預防建議

  1. 使用密碼管理器 (KeePass/Bitwarden/1Password) 存儲核心賬號。
  2. 建立專用 DBA 操作賬號 (授 SYSDBA),避免直接用 SYS/SYSTEM 日常操作。
  3. 定期演練密碼重置流程,納入災難恢復演練腳本。
  4. 啟用審計 AUDIT CREATE SESSION BY SYS, SYSTEM 監控核心賬號登入。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved