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

Oracle SYSTEM/SYS密碼遺忘六大急救方案實測

     編輯:Oracle 資料庫基礎

場景:以SYSDBA身份本地登錄重置(最通用)

# 1. 切換到軟件擁有者
su - oracle
# 2. 無需密碼進入SQL*Plus
sqlplus /nolog
SQL> CONN / AS SYSDBA
Connected.
-- 3. 重置SYS與SYSTEM
SQL> ALTER USER sys IDENTIFIED BY NewPass#123;
SQL> ALTER USER system IDENTIFIED BY NewPass#123;
-- 4. 驗證
SQL> CONN system/NewPass#123
Connected.

方案二:遠程EZConnect+SYSDBA(適用Data Guard/客戶機)

sqlplus "sys/NewPass#123@//dbhost:1521/ORCL AS SYSDBA"
-- 或
sqlplus "/@ORCL AS SYSDBA"  -- 需客戶端sqlnet.ora配置NTS且OS用戶在dba組

方案三:Windows環境變量法(CMD原生)

C:\> SET ORACLE_SID=ORCL
C:\> sqlplus /nolog
SQL> CONN / AS SYSDBA
SQL> ALTER USER sys IDENTIFIED BY NewPass#123;
SQL> ALTER USER system IDENTIFIED BY NewPass#123;

方案四:SQL*Plus無日誌模式+內部連接(舊版兼容)

SQLPLUS /NOLOG
SQL> CONN / AS SYSDBA
SQL> ALTER USER sys IDENTIFIED BY NewPass#123;
SQL> ALTER USER system IDENTIFIED BY NewPass#123;

方案五:orapwd重建密碼文件(僅修改SYS/INTERNAL,不影響其他用戶)

# 1. 關閉數據庫
SHUTDOWN IMMEDIATE
# 2. 備份舊文件
cp $ORACLE_HOME/dbs/orapwORCL $ORACLE_HOME/dbs/orapwORCL.bak
# 3. 重建
orapwd file=$ORACLE_HOME/dbs/orapwORCL password=NewPass#123 entries=10 force=y
# 4. 啟動
STARTUP

方案六:Linux單用戶模式下完整重置腳本

#!/bin/bash
# 需以oracle用戶執行
export ORACLE_SID=ORCL
export ORACLE_HOME=/u01/app/oracle/product/19.0.0/dbhome_1
export PATH=$ORACLE_HOME/bin:$PATH

sqlplus /nolog <

關鍵避坑指南

誤區正確姿勢
新密碼以數字開頭必須以字母開頭,否則報ORA-00988
以為10g+ SYSTEM默認MANAGER安裝向導強制自定義,無默認值
orapwd未加force=y覆蓋失敗11g+必須加force=y覆蓋現有文件
修改SYS密碼後OEM/監控報警同步更新OEM目標監控配置、Data Guard連接串、備份腳本密碼倉儲
核心原理:所有方案本質均為「以OS認證或現有SYSDBA會話為信任錨點,執行ALTER USER SYS/SYSTEM IDENTIFIED BY」。選擇哪種僅取決於當前環境能否獲取CONN / AS SYSDBA會話。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved