首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> Oracle 資料庫 >> Oracle 資料庫基礎

Oracle 各版本安裝完成後預設帳號密碼對照表

     編輯:Oracle 資料庫基礎

Oracle 8i / 9i / 10g / 11g / 12c / 18c / 19c 預設帳號密碼總覽

Oracle 8i (8.1.x) — 安裝後預設密碼

帳號預設密碼角色/用途狀態
SYSchange_on_install最高權限 DBA,資料字典擁有者OPEN
SYSTEMmanager第二管理員,日常管理操作OPEN
INTERNALoracle相當於 SYSDBA (8i 特有,9i 移除)OPEN
SCOTTtiger範例結構用戶 (EMP/DEPT 等)LOCKED
SYSMANoem_tempEnterprise Manager 管理OPEN
OUTLNoutln儲存大綱 (Plan Stability)LOCKED
DBSNMPdbsnmp智能代理監控LOCKED

Oracle 9i (9.2.x) — 關鍵變化

  • 安裝過程強制要求設定 SYS/SYSTEM 密碼,不再接受預設值
  • INTERNAL 帳號移除,改用 `SYS AS SYSDBA`
  • SCOTT/TIGER 等範例帳號**預設鎖定且密碼過期**
  • 其他帳號 (SYSMAN, DBSNMP, OUTLN 等) 同樣預設鎖定

Oracle 10g / 11g / 12c / 18c / 19c — 現代版本統一策略

帳號預設狀態密碼策略備註
SYSOPEN安裝時指定支援 SYSDBA/SYSOPER/SYSBACKUP/SYSDG/SYSKM
SYSTEMOPEN安裝時指定日常管理建議用此帳號
SCOTTLOCKED + EXPIRED無預設密碼需解鎖並設定密碼:`ALTER USER scott ACCOUNT UNLOCK IDENTIFIED BY new_pwd;`
SYSMANOPEN安裝時指定 (EM 配置階段)Enterprise Manager 核心帳號
DBSNMPLOCKED無EM 監控代理使用,EM 配置時自動解鎖
OUTLNLOCKED無SQL Plan Management 使用
ANONYMOUSLOCKED無XML/HTTP 存取用
XS$NULLLOCKED無12c+ 內部帳號,Real Application Security
APPQOSSYSLOCKED無QoS 管理
CTXSYSLOCKED無Oracle Text
MDSYSLOCKED無Spatial
ORDSYSLOCKED無Multimedia
WMSYSLOCKED無Workspace Manager
LBACSYSLOCKED無Label Security
DVF / DVSYSLOCKED無Database Vault (啟用時解鎖)
GSMADMIN_INTERNALLOCKED無12c+ Global Service Manager
SYSBACKUPLOCKED無12c+ 備份管理權限帳號
SYSDGLOCKED無12c+ Data Guard 管理權限帳號
SYSKMLOCKED無12c+ 金鑰管理權限帳號
SYSRACLOCKED無19c+ RAC 管理權限帳號

關鍵安全操作指南

1. 安裝後立即執行:修改預設密碼與鎖定閒置帳號


-- 以 SYSDBA 登入
sqlplus / as sysdba

-- 修改 SYS/SYSTEM 密碼 (若安裝時設定過簡單)
ALTER USER sys IDENTIFIED BY "ComplexP@ssw0rd1";
ALTER USER system IDENTIFIED BY "ComplexP@ssw0rd2";

-- 鎖定所有非必要預設帳號 (除 SYS/SYSTEM/SYSMAN 外)
BEGIN
  FOR u IN (SELECT username FROM dba_users 
            WHERE username NOT IN ('SYS','SYSTEM','SYSMAN') 
            AND account_status = 'OPEN')
  LOOP
    EXECUTE IMMEDIATE 'ALTER USER ' || u.username || ' ACCOUNT LOCK';
  END LOOP;
END;
/

-- 驗證
SELECT username, account_status FROM dba_users ORDER BY 1;

2. 啟用 SCOTT 範例結構 (教學/測試環境)


-- 解鎖並設定密碼
ALTER USER scott ACCOUNT UNLOCK IDENTIFIED BY tiger;

-- 執行建腳本 (通常位於 $ORACLE_HOME/rdbms/admin/utlsampl.sql)
@?/rdbms/admin/utlsampl.sql

-- 驗證
SELECT * FROM scott.emp;

3. 密碼驗證函數與複雜度策略


-- 建立驗證函數 (範例:長度≥10、含大小寫、數字、特殊字元)
CREATE OR REPLACE FUNCTION verify_complexity
  (username VARCHAR2, password VARCHAR2, old_password VARCHAR2)
RETURN BOOLEAN IS
BEGIN
  IF LENGTH(password) < 10 THEN
    RAISE_APPLICATION_ERROR(-20001, '密碼長度至少 10 字元');
  END IF;
  IF NOT REGEXP_LIKE(password, '[A-Z]') THEN
    RAISE_APPLICATION_ERROR(-20002, '需含大寫字母');
  END IF;
  IF NOT REGEXP_LIKE(password, '[a-z]') THEN
    RAISE_APPLICATION_ERROR(-20003, '需含小寫字母');
  END IF;
  IF NOT REGEXP_LIKE(password, '[0-9]') THEN
    RAISE_APPLICATION_ERROR(-20004, '需含數字');
  END IF;
  IF NOT REGEXP_LIKE(password, '[^A-Za-z0-9]') THEN
    RAISE_APPLICATION_ERROR(-20005, '需含特殊字元');
  END IF;
  RETURN TRUE;
END;
/

-- 建立設定檔並指派
CREATE PROFILE secure_profile LIMIT
  PASSWORD_VERIFY_FUNCTION verify_complexity
  PASSWORD_LIFE_TIME 90
  PASSWORD_GRACE_TIME 7
  PASSWORD_REUSE_TIME 365
  PASSWORD_REUSE_MAX 10
  FAILED_LOGIN_ATTEMPTS 5
  PASSWORD_LOCK_TIME 1;

ALTER USER system PROFILE secure_profile;
ALTER USER sys PROFILE secure_profile;
-- 其他管理帳號同理

版本演進關鍵差異總結

版本SYS/SYSTEM 密碼SCOTT 狀態INTERNAL安全預設值
8i預設固定OPEN/tiger存在極低
9i**安裝時強制設定**LOCKED移除中等
10g+安裝時強制設定LOCKED+EXPIRED無高 (預設鎖定多數帳號)
12c+安裝時強制設定LOCKED+EXPIRED無最高 (權限分離帳號 SYSBACKUP/SYSDG/SYSKM)

最佳實踐檢查清單

  1. ✅ 安裝時為 SYS/SYSTEM 設定高強度密碼
  2. ✅ 安裝完成後立即執行鎖定腳本,僅保留必要帳號 OPEN
  3. ✅ 為管理帳號指派強密碼驗證設定檔
  4. ✅ 定期稽核 `DBA_USERS` 確認無異常 OPEN 帳號
  5. ✅ 啟用審計 `AUDIT CREATE SESSION BY ACCESS WHENEVER NOT SUCCESSFUL`
  6. ✅ 使用密碼管理工具 (Password Vault) 儲存管理密碼,杜絕硬編碼

現代 Oracle 版本 (10g+) 安全預設值已大幅提升,**安裝時強制設定 SYS/SYSTEM 密碼**與**預設鎖定絕大多數內建帳號**是兩大關鍵防線。DBA 核心責任是延續並強化這些防線。

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