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

Oracle密碼遺失雙重急救方案:OS認證繞過與口令文件重建

     編輯:Oracle 資料庫基礎

場景

生產庫SYS/SYSTEM密碼遺失,無口令文件備份,需緊急恢復特權訪問。

方案一:OS認證繞過(最快,需OS root/Administrator權限)

前提

  • OS用戶屬於dba組(Linux/Unix)或ORA_DBA組(Windows)
  • SQLNET.ORA中SQLNET.AUTHENTICATION_SERVICES=(NTS)(Windows默認)或(NONE)(Linux默認OS認證)

操作步驟

# 1. 確認OS用戶組
$ id oracle
uid=54321(oracle) gid=54321(oinstall) groups=54321(oinstall),54322(dba)

# 2. 修改 sqlnet.ora(如未配置)
# $ORACLE_HOME/network/admin/sqlnet.ora
SQLNET.AUTHENTICATION_SERVICES = (NTS)  -- Windows
# 或註釋該行使用OS認證(Linux默認)

# 3. 重啟監聽/實例(如參數修改)
$ lsnrctl stop; lsnrctl start
SQL> SHUTDOWN IMMEDIATE; STARTUP;

# 4. OS認證登錄
$ sqlplus / AS SYSDBA
-- 或
$ sqlplus /nolog
SQL> CONNECT / AS SYSDBA

# 5. 重置密碼
SQL> ALTER USER SYS IDENTIFIED BY "New_Sys_P@ss!";
SQL> ALTER USER SYSTEM IDENTIFIED BY "New_System_P@ss!";

方案二:口令文件重建(通用,不依賴OS組)

適用場景

  • OS用戶不在特權組
  • 需重建SYSDBA授權用戶列表
  • 遷移密碼文件至ASM/新路徑

操作步驟

-- 1. 備份現有特權用戶(若實例仍可連接)
SELECT username FROM V$PWFILE_USERS;
-- 輸出保存:SYS, DBA_ADMIN, BACKUP_ADMIN

-- 2. 關閉數據庫
SHUTDOWN IMMEDIATE;

-- 3. 刪除舊口令文件
$ rm $ORACLE_HOME/dbs/orapwPROD
# Windows: del %ORACLE_HOME%\database\PWDPROD.ora

-- 4. 重建口令文件(ENTRIES預留充足)
$ orapwd FILE=$ORACLE_HOME/dbs/orapwPROD PASSWORD="New_Sys_P@ss!" ENTRIES=50 FORCE=Y

-- 5. 啟動實例至MOUNT
STARTUP MOUNT;

-- 6. 以新密碼SYSDBA登錄
SQL> CONNECT SYS/"New_Sys_P@ss!" AS SYSDBA

-- 7. 打開數據庫
ALTER DATABASE OPEN;

-- 8. 重新授權特權用戶(自動寫入新文件)
GRANT SYSDBA TO dba_admin;
GRANT SYSDBA TO backup_admin;
-- ... 其他

-- 9. 確認參數
ALTER SYSTEM SET REMOTE_LOGIN_PASSWORDFILE=EXCLUSIVE SCOPE=SPFILE;
-- 下次重啟生效

方案對比

維度OS認證繞過口令文件重建
前提OS特權組成員僅需關閉實例權限
速度秒級分鐘級(含重啟)
保留授權自動保留需手工重授
風險低中(遺漏授權導致應用斷連)

預防措施

  1. 密碼管理器存儲:SYS/SYSTEM密碼存入KeePass/1Password/HashiCorp Vault,離職交接流程化。
  2. 口令文件備份:每日cp $ORACLE_HOME/dbs/orapw /backup/orapw__$(date +%F)。
  3. 多管理員機制:至少兩個SYSDBA用戶(SYS + DBA_ADMIN),避免單點遺失。
  4. 定期應急演練:季度在測試環境演練密碼遺失恢復,驗證文檔有效性。

總結

密碼遺失不可怕,可怕的是無預案。OS認證繞過為首選(快、保留授權),口令文件重建為備選(通用)。建立「密碼存儲、文件備份、多管理員、演練驗證」四層防護,將風險降至最低。

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