掌控 SYSDBA/SYSOPER 遠端登入權限的核心機制
密碼檔是 Oracle 遠端特權連線 (SYSDBA/SYSOPER) 的身分驗證基石。本文系統說明密碼檔建立工具 ORAPWD、關鍵參數 REMOTE_LOGIN_PASSWORDFILE 三種模式、特權用戶授權機制 (GRANT/REVOKE 自動同步密碼檔)、跨實例共享與安全最佳實務。
密碼檔建立工具 ORAPWD
orapwd FILE=filename PASSWORD=sys_password ENTRIES=max_users [FORCE=Y] [IGNORECASE=Y] [FORMAT=12.2]
| 參數 | 說明 | 建議值 |
| FILE | 密碼檔完整路徑 | $ORACLE_HOME/dbs/orapw (Linux) / $ORACLE_HOME/database/PWD.ora (Windows) |
| PASSWORD | SYS 使用者密碼 | 強複雜度密碼,定期輪換 |
| ENTRIES | 最大特權用戶數 (含 SYS) | 預估 DBA/運維人數 * 2,預留擴充空間 |
| FORCE=Y | 覆蓋既有檔案 | 重建時使用 |
| IGNORECASE=Y | 密碼大小寫不敏感 (12c+ 預設區分大小寫) | 相容舊應用時啟用 |
| FORMAT=12.2 | 12.2 版格式支援更長密碼、SHA-2 | 新建環境建議指定 |
關鍵參數:REMOTE_LOGIN_PASSWORDFILE
| 模式 | 值 | 特性 | 適用場景 |
| 無密碼檔 | NONE | 僅 OS 驗證,無遠端特權登入 | 高安全需求、本地管理環境 |
| 獨佔模式 | EXCLUSIVE | 單一實例專用;支援非 SYS 特權用戶;GRANT SYSDBA 自動寫入密碼檔 | 標準生產環境 推薦 |
| 共享模式 | SHARED (預設) | 多實例共用;僅識別 SYS;即使檔中有其他用戶也無法以 SYSDBA 登入 | RAC / 多實例共用管理帳號 |
搜尋順序:Registry ORA_SID_PWFILE → Registry ORA_PWFILE → 預設路徑 $ORACLE_HOME/dbs/orapw
特權用戶授權機制 (僅 EXCLUSIVE 模式生效)
-- 1. 確認參數
SHOW PARAMETER remote_login_passwordfile; -- 必須為 EXCLUSIVE
-- 2. 以 SYSDBA 登入
CONNECT sys/password AS SYSDBA;
-- 3. 建立一般用戶 (若不存在)
CREATE USER dba_user IDENTIFIED BY strong_pass;
-- 4. 授予特權 (自動寫入密碼檔)
GRANT SYSDBA TO dba_user; -- 完整管理權限
GRANT SYSOPER TO dba_user; -- 僅啟動/關閉/備份/復原
-- 5. 回收特權 (自動從密碼檔移除)
REVOKE SYSDBA FROM dba_user;
REVOKE SYSOPER FROM dba_user;
查詢密碼檔現有特權用戶
SELECT * FROM v$pwfile_users;
-- USERNAME | SYSDBA | SYSOPER | SYSASM | SYSBACKUP | SYSDG | SYSKM | CON_ID
RAC 環境密碼檔管理
- 共享模式:所有節點掛載共享儲存上的同一密碼檔,或使用 ASM 儲存密碼檔 (
orapwd ... FORMAT=12.2 自動存 ASM)
- 獨佔模式:每節點維護獨立密碼檔,授權操作需在各節點執行或用
srvctl modify database -pwfile 統一管理
- 12c+
SYSBACKUP、SYSDG、SYSKM 新特權角色分離備份、Data Guard、金鑰管理職責
安全最佳實務
- 強制 EXCLUSIVE 模式:確保特權授權可控、可審計
- 密碼複雜度與輪換:Profile 限制 SYS 密碼複雜度,每 90 天輪換並同步更新密碼檔
- 最小特權原則:運維人員授予 SYSOPER 而非 SYSDBA;備份專員授 SYSBACKUP
- 密碼檔備份與加密:納入備份策略,儲存加密,嚴格存取控制
- 稽核特權登入:
AUDIT SYS_OPERATIONS + AUDIT SESSION BY ACCESS 捕捉所有 SYSDBA 連線
- 禁用預設密碼:安裝後立即修改 SYS/SYSTEM 密碼並重建密碼檔
常見問題排查
| 現象 | 原因 | 解決 |
| ORA-01017: invalid username/password | 密碼檔與 SPFILE 中 SYS 密碼不一致 | 重建密碼檔指定正確 PASSWORD,或修改 SPFILE 後重啟 |
| GRANT SYSDBA 失敗 | REMOTE_LOGIN_PASSWORDFILE != EXCLUSIVE | 修改參數為 EXCLUSIVE 並重啟實例 |
| 遠端 SYSDBA 連線被拒 | 密碼檔路徑錯誤 / 權限不足 / 大小寫不符 | 檢查檔案存在性、OS 權限、IGNORECASE 設定 |
| RAC 節點特權不同步 | 獨佔模式未同步密碼檔 | 改用共享模式或 ASM 密碼檔,或手動同步各節點 |
密碼檔是特權存取的「鑰匙櫃」,規範化管理是防止特權濫用、滿足合規審計的核心環節。
- 上一篇文章: Oracle LogMiner 重做日誌分析實戰:誤操作復原與審計追蹤
- 下一篇文章: Oracle 效能防護四大支柱:分區、索引重建、段碎片整理、自由區段合併
Copyright ©
程式碼之家 All Rights Reserved