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

Oracle 預設用戶密碼對照表與帳號解鎖實戰指南

     編輯:Oracle 資料庫相關知識

Oracle 安裝預設建立多個內建帳號,部分預設密碼已公開文件化,但 11g 起安裝精靈強制要求設定 SYS/SYSTEM 密碼,不再有通用預設值。本文整理歷史版本預設密碼表、帳號鎖定成因、SYS AS SYSDBA 緊急解鎖流程、生產環境帳號安全基線。

歷史版本常見預設帳號/密碼(10g 及以前)

用戶名預設密碼角色/用途備註
SYSCHANGE_ON_INSTALL資料庫最高管理員11g+ 安裝時自訂,**無通用預設值**
SYSTEMMANAGER次級管理員11g+ 安裝時自訂
SCOTTTIGER範例用戶預設鎖定、過期
DBSNMPDBSNMPEnterprise Manager 監控代理
SYSMANCHANGE_ON_INSTALLEM 管理伺服器帳號
CTXSYSCTXSYSOracle Text
MDSYSMDSYSOracle Spatial
ORDSYSORDSYSOracle interMedia
OUTLNOUTLNPlan Stability
OLAPSYSMANAGEROLAP 目錄擁有者

帳號鎖定常見原因

  1. 連續登入失敗超過 Profile FAILED_LOGIN_ATTEMPTS(預設 10)
  2. 密碼過期(PASSWORD_LIFE_TIME)未在寬限期內變更
  3. DBA 手動 ALTER USER ... ACCOUNT LOCK
  4. 預設範例帳號(SCOTT、HR、OE 等)安裝後即鎖定

緊急解鎖與重設密碼流程(需 SYSDBA 權限)

-- 1. OS 認證登入(屬於 ORA_DBA 群組的用戶)
sqlplus / AS SYSDBA

-- 2. 或密碼認證(知道 SYS 密碼)
sqlplus sys/password AS SYSDBA

-- 3. 解鎖帳號
ALTER USER scott ACCOUNT UNLOCK;

-- 4. 重設密碼
ALTER USER scott IDENTIFIED BY new_password;

-- 5. 驗證
CONN scott/new_password

一鍵檢查所有預設帳號狀態腳本

SET LINES 200 PAGES 100
COL username FOR A20
COL account_status FOR A20
COL profile FOR A15
COL lock_date FOR A20
COL expiry_date FOR A20
SELECT username, account_status, lock_date, expiry_date, profile
FROM dba_users
WHERE username IN (
    'SYS','SYSTEM','SCOTT','DBSNMP','SYSMAN','CTXSYS','MDSYS',
    'ORDSYS','OUTLN','OLAPSYS','HR','OE','SH','PM','IX','BI','ANONYMOUS','XDB','APEX_PUBLIC_USER'
)
ORDER BY username;

生產環境帳號安全基線建議

  • 鎖定並過期所有未使用的預設帳號: ALTER USER hr ACCOUNT LOCK PASSWORD EXPIRE;
  • 修改必須保留帳號(SYS、SYSTEM、SYSMAN、DBSNMP)密碼為高強度複雜密碼,定期輪換
  • 建立專用應用帳號,授予最小權限,禁用預設帳號供應用連線
  • 啟用密碼驗證函數: CREATE PROFILE secure_profile LIMIT PASSWORD_VERIFY_FUNCTION ora12c_strong_verify_function; 並指派給所有應用帳號
  • 審計關鍵帳號登入: AUDIT SESSION BY sys, system, sysman BY ACCESS;
  • 移除範例 Schema(若不需): 執行 ?/rdbms/admin/utlrp.sql 後可選擇移除 SCOTT/HR 等

預設密碼是資安掃描的必檢項目。**安裝即修改、鎖定不用、審計關鍵、定期輪換** 是資料庫帳號管理的鐵律。

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