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

Windows 下 Oracle Internal 密碼修改自動化批次腳本

     編輯:關於SqlServer

適用場景

  • Windows 平台 Oracle 8i/9i/10g(較舊版本使用 orapwd 與 svrmgrl)
  • 需定期輪換 INTERNAL/SYS 密碼
  • 採用密碼檔認證(REMOTE_LOGIN_PASSWORDFILE=EXCLUSIVE)

腳本邏輯流程

  1. 切換 sqlnet.ora 至 NTS(OS 認證),以 INTERNAL 免密關閉資料庫
  2. 刪除舊密碼檔 PWD{SID}.ora
  3. 使用 orapwd 產生新密碼檔
  4. 切換 sqlnet.ora 至 NONE(關閉 OS 認證)
  5. 以新密碼啟動資料庫驗證

完整批次檔 updateinternalpwd.bat

@echo off
REM ====== 使用者配置區 ======
set ORACLE_SID=satest
set ORACLE_HOME=e:\Oracle\ora81
set PATH=%ORACLE_HOME%\bin;%PATH%
set NEWPWD=QQ12345
set NONEFILE=%ORACLE_HOME%\network\ADMIN\sqlnet2.ora   REM SQLNET.AUTHENTICATION_SERVICES=(NONE)
set NTSFILE=%ORACLE_HOME%\network\ADMIN\sqlnet1.ora    REM SQLNET.AUTHENTICATION_SERVICES=(NTS)
set DESTFILE=%ORACLE_HOME%\network\ADMIN\sqlnet.ora
set PWDFILE=PWD%ORACLE_SID%.ora
set TTFILE=%ORACLE_HOME%\dbascripts\updatepwd.tmp
REM ===========================

echo 1/5 切換至 OS 認證模式...
copy /Y %NTSFILE% %DESTFILE% >nul

echo 2/5 關閉資料庫...
echo connect internal > %TTFILE%
echo shutdown immediate >> %TTFILE%
echo exit >> %TTFILE%
type %TTFILE% | svrmgrl

echo 3/5 重建密碼檔...
del /Q %ORACLE_HOME%\database\%PWDFILE% 2>nul
orapwd file=%ORACLE_HOME%\database\%PWDFILE% password=%NEWPWD% entries=10

echo 4/5 切換至密碼檔認證...
copy /Y %NONEFILE% %DESTFILE% >nul

echo 5/5 啟動資料庫驗證...
echo connect internal/%NEWPWD% > %TTFILE%
echo startup >> %TTFILE%
echo exit >> %TTFILE%
type %TTFILE% | svrmgrl

del /Q %TTFILE% 2>nul
echo 完成!新密碼已生效。
pause

關鍵檔案內容範例

sqlnet1.ora (NTS)

SQLNET.AUTHENTICATION_SERVICES = (NTS)

sqlnet2.ora (NONE)

SQLNET.AUTHENTICATION_SERVICES = (NONE)

現代版本(11g+)注意事項

  • svrmgrl 已移除,改用 sqlplus / as sysdba
  • orapwd 新增 force=y 參數可直接覆蓋,無需手動刪除
  • 建議使用 ALTER USER SYS IDENTIFIED BY newpwd; 同步修改資料庫內部密碼
  • Data Guard 環境需同步更新 Standby 端密碼檔

安全建議

  • 腳本中明文密碼屬風險,生產環境請改用加密儲存或執行時輸入
  • 執行前備份 sqlnet.ora 與舊 PWD*.ora
  • 記錄操作日誌納入稽核追蹤
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved