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

解決 Oracle 用戶鎖定/連線失敗:SCOTT 解鎖與密碼重置實戰

     編輯:Oracle 資料庫基礎

常見錯誤現象

ERROR:
ORA-28000: the account is locked

安裝 Oracle 11g 後,預設範例用戶 SCOTT 常處於鎖定狀態,導致無法登入學習。

鎖定成因分析

  1. 多次嘗試登入失敗(密碼錯誤)觸發 FAILED_LOGIN_ATTEMPTS 限制。
  2. 管理員手動執行 ALTER USER SCOTT ACCOUNT LOCK。
  3. 密碼過期(PASSWORD_LIFE_TIME 到期)且未及時修改。

解決方案:以 SYSTEM 用戶解鎖並重置密碼

前提:安裝時設定的 SYSTEM 密碼有效(非預設值)。

步驟 1:以 SYSTEM 連線

SQL> CONN system/your_password
Connected.

步驟 2:解鎖 SCOTT 帳號

SQL> ALTER USER scott ACCOUNT UNLOCK;
User altered.

步驟 3:重置密碼(建議強密碼)

SQL> ALTER USER scott IDENTIFIED BY new_strong_password;
User altered.

步驟 4:驗證登入

SQL> CONN scott/new_strong_password
Connected.

進階:批次檢查與解鎖所有被鎖用戶

-- 查詢被鎖用戶
SELECT username, account_status, lock_date
FROM dba_users
WHERE account_status LIKE '%LOCK%';

-- 生成解鎖腳本
SELECT 'ALTER USER ' || username || ' ACCOUNT UNLOCK;'
FROM dba_users
WHERE account_status LIKE '%LOCK%';

預防與最佳實踐

  • 設定合理的 Profile 參數:FAILED_LOGIN_ATTEMPTS = 10、PASSWORD_LOCK_TIME = 1(天)、PASSWORD_LIFE_TIME = 180(天)。
  • 審計登入失敗:AUDIT SESSION WHENEVER NOT SUCCESSFUL 追蹤暴力破解。
  • 避免使用預設帳號:生產環境刪除或永久鎖定 SCOTT、HR、OE 等範例用戶。
  • 密碼複雜度驗證:啟用 VERIFY_FUNCTION 強制強密碼策略。

總結

ALTER USER ... ACCOUNT UNLOCK + IDENTIFIED BY 兩條指令即可快速解決預設用戶鎖定問題。關鍵在於:擁有有效的管理員帳號(SYS/SYSTEM)、理解 Profile 鎖定機制、建立批次處理腳本應對大規模鎖定。生產環境請嚴格管控範例用戶,避免成為安全弱點。

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