錯誤現象
ERROR:
ORA-28000: the account is locked
常見鎖定原因
- 連續登錄失敗超過
FAILED_LOGIN_ATTEMPTS閾值(默認10次,由PROFILE控制)
- DBA手動執行
ALTER USER SCOTT ACCOUNT LOCK
- 密碼過期(
PASSWORD_LIFE_TIME到期)且未在寬限期內修改
解鎖標準流程
-- 1. 以具備ALTER USER權限的用戶登錄(通常是SYSTEM)
-- 注意:10g+ SYSTEM密碼為安裝時自定義,非默認MANAGER
CONN system/你的密碼
-- 2. 解鎖賬號
ALTER USER scott ACCOUNT UNLOCK;
-- 提示:User altered.
-- 3. 可選:重置密碼(建議同步執行)
ALTER USER scott IDENTIFIED BY new_password;
-- 提示:User altered.
-- 4. 驗證
CONN scott/new_password
-- Connected.
進階排查:為什麼SYSTEM也登不進去?
- 10g/11g/12c/19c安裝向導強制要求設置SYS/SYSTEM密碼,不再使用默認值。
- 若記不住安裝時設置的密碼,參考《Oracle SYSTEM用戶忘記密碼解決方案》(ID:94322)以SYSDBA身份重置。
防患未然:調整PROFILE策略
-- 查看SCOTT所用PROFILE
SELECT profile FROM dba_users WHERE username = 'SCOTT';
-- 通常為DEFAULT
-- 檢查鎖定相關參數
SELECT resource_name, limit
FROM dba_profiles
WHERE profile = 'DEFAULT'
AND resource_type = 'PASSWORD'
AND resource_name IN ('FAILED_LOGIN_ATTEMPTS','PASSWORD_LIFE_TIME','PASSWORD_GRACE_TIME');
-- 建議生產環境調整(示例)
ALTER PROFILE DEFAULT LIMIT
FAILED_LOGIN_ATTEMPTS 5
PASSWORD_LIFE_TIME 90
PASSWORD_GRACE_TIME 7
PASSWORD_LOCK_TIME 1; -- 鎖定1天後自動解鎖(11g+)
提示:SCOTT為教學用戶,生產環境建議DROP USER SCOTT CASCADE或永久ACCOUNT LOCK+PASSWORD EXPIRE,僅在測試庫保留並設置簡單密碼策略。