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

Oracle ORA-28000 帳戶被鎖定:PL/SQL Developer 圖形界面與 SQL 命令雙重解鎖方案

     編輯:Oracle 資料庫相關知識

使用 PL/SQL Developer 登入 SCOTT 等預設帳戶時遇到 ORA-28000: the account is locked。本文提供兩種解鎖方式:圖形介面操作 (適合新手) 與 SQL 命令 (適合腳本自動化)。

錯誤訊息

ORA-28000: the account is locked

方法一:PL/SQL Developer 圖形介面解鎖 (推薦新手)

  1. 以具備 DBA 權限的用戶 (如 SYS AS SYSDBA、SYSTEM) 登入
  2. 左側物件瀏覽器展開 Users 節點
  3. 找到被鎖定用戶 (圖示帶紅叉或狀態顯示 LOCKED)
  4. 右鍵選擇 Edit (編輯)
  5. 取消勾選 Account Locked (帳戶被鎖定)
  6. 點擊 Apply 套用
  7. 7. 重新以該用戶登入,系統會提示**重設密碼**,完成後即可正常使用

方法二:SQL 命令解鎖 (適合批次/自動化)

-- 1. 以 SYSDBA 登入
CONN / AS SYSDBA

-- 2. 執行解鎖命令
ALTER USER scott ACCOUNT UNLOCK;

-- 3. (可選) 同時重設密碼
ALTER USER scott IDENTIFIED BY new_password ACCOUNT UNLOCK;

-- 4. 驗證狀態
SELECT USERNAME, ACCOUNT_STATUS FROM DBA_USERS WHERE USERNAME = 'SCOTT';
-- 應顯示 OPEN

常見鎖定原因與預防

批次解鎖腳本 (所有被鎖定用戶)

BEGIN
  FOR u IN (SELECT USERNAME FROM DBA_USERS WHERE ACCOUNT_STATUS LIKE '%LOCKED%') LOOP
    EXECUTE IMMEDIATE 'ALTER USER ' || u.USERNAME || ' ACCOUNT UNLOCK';
    DBMS_OUTPUT.PUT_LINE('Unlocked: ' || u.USERNAME);
  END LOOP;
END;
/
提醒:解鎖後建議立即通知用戶修改密碼,並審計鎖定原因以防再發生。生產環境嚴禁使用預設帳戶 (SCOTT, HR 等) 運行業務。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved
原因對應參數預防建議
密碼過期PASSWORD_LIFE_TIME修改 Profile 設為 UNLIMITED 或延長天數
登入失敗次數過多FAILED_LOGIN_ATTEMPTS調大閾值、啟用帳戶鎖定時間 PASSWORD_LOCK_TIME
管理員手動鎖定ALTER USER ... ACCOUNT LOCK建立操作審計、限制 DBA 權限
密碼驗證函數拒絕PASSWORD_VERIFY_FUNCTION檢查複雜度函數邏輯、提供符合規則的密碼