首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

解決 Oracle 用戶帳號鎖定與連線失敗完整指南

     編輯:Oracle 資料庫相關知識

初次安裝 Oracle 11g 後,使用 SYS 登入 SQL*Plus 提示 ORA-28000: the account is locked,本文說明鎖定成因、解鎖步驟與密碼重設最佳實務。

常見鎖定原因

  1. 連續輸入錯誤密碼超過 FAILED_LOGIN_ATTEMPTS 設定值(預設 10 次,由 Profile 控制)
  2. DBA 手動執行 ALTER USER ... ACCOUNT LOCK
  3. 密碼過期(PASSWORD_LIFE_TIME)且未在寬限期內變更

快速解鎖與重設密碼流程

  1. 以具 DBA 權限的帳號登入(安裝時設定密碼的 SYSTEM 或 SYS AS SYSDBA)
  2. 執行解鎖命令:
    ALTER USER scott ACCOUNT UNLOCK;
  3. 重設密碼:
    ALTER USER scott IDENTIFIED BY tiger;
  4. 驗證登入:
    CONN scott/tiger

進階管理建議

  • 檢查帳號狀態: SELECT username, account_status, lock_date, expiry_date FROM dba_users WHERE username = 'SCOTT';
  • 調整 Profile 策略: 修改 DEFAULT Profile 或建立專用 Profile,放寬 FAILED_LOGIN_ATTEMPTS、PASSWORD_LIFE_TIME、PASSWORD_GRACE_TIME 等參數
  • 避免使用預設帳號: 生產環境建議鎖定 SCOTT、HR、OE 等範例帳號,改建應用專用帳號並授予最小權限
  • 密碼驗證函數: 實作 VERIFY_FUNCTION 強制複雜度,防止弱密碼

常見誤區澄清

誤區: SYS 密碼是預設 CHANGE_ON_INSTALL
事實: 11g 起安裝精靈強制要求設定 SYS/SYSTEM 密碼,無預設值

一鍵檢查腳本

SET LINES 200 PAGES 100
COL username FOR A20
COL account_status FOR A20
COL profile FOR A20
SELECT username, account_status, lock_date, expiry_date, profile
FROM dba_users
WHERE username IN ('SYS','SYSTEM','SCOTT','HR','OE','SH','PM','IX','BI');

定期執行上述查詢,納入巡檢清單,可提前發現帳號異常狀態。

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