Oracle 10g Express Edition (XE) 安裝後長期未用,默認用戶(DBSNMP、HR等)因密碼過期或登錄失敗被鎖,且忘記初始密碼。本文提供從SYS登錄到批量解鎖的標準化操作。
C:\> sqlplus /nolog
SQL> CONNECT / AS SYSDBA
Connected to:
Oracle Database 10g Express Edition Release 10.2.0.1.0 - Production
前提:OS用戶屬於ORA_DBA組(Windows)或dba組(Linux)。
SELECT username, account_status, lock_date, expiry_date
FROM dba_users
WHERE account_status != 'OPEN';
常見輸出:DBSNMP 狀態 EXPIRED & LOCKED(TIMED)。
-- 解鎖
ALTER USER dbsnmp ACCOUNT UNLOCK;
-- 重置密碼(同步修改應用端連接串)
ALTER USER dbsnmp IDENTIFIED BY new_password;
-- 若密碼已過期,需先標記過期再重置(避免ORA-28001)
ALTER USER dbsnmp PASSWORD EXPIRE;
ALTER USER dbsnmp IDENTIFIED BY new_password;
| 用戶名 | 默認密碼 | 用途 | 備註 |
|---|---|---|---|
| SYS | CHANGE_ON_INSTALL | 核心字典擁有者,最高權限 | 安裝時可自定義 |
| SYSTEM | MANAGER | 第二管理員 | 同上 |
| DBSNMP | DBSNMP | Enterprise Manager監控代理 | 最常被鎖 |
| SYSMAN | CHANGE_ON_INSTALL | EM Repository擁有者 | Grid Control專用 |
| HR | HR | 示例模式(人力資源) | 安裝可選不安裝 |
| OE | OE | 示例模式(訂單入口) | 同上 |
| SCOTT | TIGER | 經典教學模式 | 需執行?/rdbms/admin/utlsampl.sql創建 |
| CTXSYS | CTXSYS | Oracle Text | 文本索引 |
| MDSYS | MDSYS | Oracle Spatial | 空間數據 |
| ORDSYS | ORDSYS | Oracle interMedia | 多媒體 |
| OUTLN | OUTLN | 計劃穩定性 | Stored Outlines |
SET SERVEROUTPUT ON
BEGIN
FOR u IN (SELECT username FROM dba_users WHERE account_status LIKE 'LOCKED%')
LOOP
BEGIN
EXECUTE IMMEDIATE 'ALTER USER ' || u.username || ' ACCOUNT UNLOCK';
DBMS_OUTPUT.PUT_LINE('Unlocked: ' || u.username);
EXCEPTION WHEN OTHERS THEN
DBMS_OUTPUT.PUT_LINE('Failed: ' || u.username || ' - ' || SQLERRM);
END;
END LOOP;
END;
/
-- 後續需逐個重置密碼或統一設置默認密碼
ALTER USER ctxsys ACCOUNT LOCK PASSWORD EXPIRE;(XE輕量級,多組件可禁用)。ALTER PROFILE DEFAULT LIMIT PASSWORD_VERIFY_FUNCTION VERIFY_FUNCTION_11G;AUDIT SESSION WHENEVER NOT SUCCESSFUL;XE環境輕量但默認賬號風險同樣存在。掌握SYS/AS SYSDBA → 查詢狀態 → 解鎖重置 → 安全加固四步曲,配合默認用戶速查表,可在5分鐘內恢復所有受阻訪問。