Oracle 資料庫安全管理的核心之一是控制特權用戶 (INTERNAL/SYSDBA/SYSOPER) 登入。除作業系統驗證外,密碼檔 是遠端/本機特權連線的關鍵機制。
預設位於 $ORACLE_HOME/dbs (Unix) 或 %ORACLE_HOME%\database (Windows),檔名 PWD。存放 SYS/INTERNAL 密碼及獲授 SYSDBA/SYSOPER 的用戶帳號。
建立資料庫實例時自動建立。亦可手動用 ORAPWD 工具:
ORAPWD FILE= PASSWORD= ENTRIES=
FILE:密碼檔完整路徑。PASSWORD:SYS/INTERNAL 密碼。ENTRIES:允許的最大特權用戶數,建議預留空間避免日後重建。控制密碼檔使用模式:
NONE:不使用密碼檔,僅 OS 驗證。EXCLUSIVE:單一實例專用,**允許除 SYS 外的用戶獲授 SYSDBA/SYSOPER** (唯一支援多用戶的模式)。SHARED:多實例共用,**僅識別 SYS/INTERNAL**,即使檔中有其他用戶也無法以特權登入 (預設值)。搜尋順序:註冊表 ORA_SID_PWFILE → ORA_PWFILE → 預設路徑。
前提:REMOTE_LOGIN_PASSWORDFILE=EXCLUSIVE 且以 SYSDBA 連線。
-- 授予
GRANT SYSDBA TO username;
-- 回收
REVOKE SYSDBA FROM username;
授予/回收 SYSDBA/SYSOPER 系統權限即同步更新密碼檔。
參數需為 EXCLUSIVE 或 SHARED。登入後位於 SYS Schema 下:
-- 一般用戶獲授 SYSDBA
CONNECT scott/tiger AS SYSDBA
-- INTERNAL 登入 (舊版相容)
CONNECT INTERNAL/internal_password