首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 相關知識

Oracle 密碼檔管理完整指南:建立、設定、維護與登入實務

     編輯:Java 相關知識

Oracle 密碼檔是特權使用者(SYS、SYSDBA、SYSOPER)進行遠端或本地身分驗證的關鍵機制。妥善管理密碼檔,能有效控管資料庫管理權限,確保系統安全。本文詳細說明密碼檔的建立、參數設定、使用者增刪、登入方式與維護操作。

密碼檔建立方式

  1. 自動建立:使用 Database Configuration Assistant (DBCA) 建立實例時,於 $ORACLE_HOME/dbs 自動產生 orapw<SID>
  2. 手動建立:使用 orapwd 工具
    orapwd file=orapwORCL password=sys_password entries=10
    • file:密碼檔完整路徑
    • password:SYS/INTERNAL 密碼
    • entries:最大特權使用者數(含 SYS),建議預留空間避免重建

關鍵參數:REMOTE_LOGIN_PASSWORDFILE

值說明
NONE不使用密碼檔,改用作業系統驗證
EXCLUSIVE單一實例專用,可包含非 SYS 使用者,允許授予 SYSDBA/SYSOPER
SHARED多實例共用,僅識別 SYS/INTERNAL,預設值

搜尋順序:註冊表 ORA_SID_PWFILE → ORA_PWFILE → 預設 $ORACLE_HOME/dbs/orapw<SID>

新增/移除特權使用者

前提:REMOTE_LOGIN_PASSWORDFILE=EXCLUSIVE 且以 SYSDBA 登入

-- 授予 SYSDBA
GRANT SYSDBA TO scott;

-- 回收 SYSDBA
REVOKE SYSDBA FROM scott;

授權即寫入密碼檔,回收即移除。

登入範例

-- 以特定使用者身分登入
CONNECT scott/tiger AS SYSDBA

-- 以 INTERNAL 登入(舊版相容)
CONNECT INTERNAL/internal_password

日常維護操作

1. 查詢密碼檔成員

SELECT * FROM V$PWFILE_USERS;

2. 擴充使用者上限

  1. 備份 V$PWFILE_USERS 資料
  2. 關閉資料庫
  3. 刪除舊密碼檔
  4. 用 orapwd 重建並指定較大 entries
  5. 依備份資料重新授權

3. 變更密碼檔狀態

修改 REMOTE_LOGIN_PASSWORDFILE 參數,啟動實例時 Oracle 會自動同步檔案狀態。叢集環境需確保所有節點參數一致。

4. 遷移密碼檔位置

移動檔案後,更新註冊表 ORA_SID_PWFILE 或環境變數 ORA_PWFILE。

5. 刪除密碼檔

先將所有實例參數設為 NONE,再刪除檔案。之後僅能用 OS 驗證登入。

安全建議

  • 嚴格限制密碼檔存取權限(OS 層面 chmod 600)
  • 定期輪換 SYS 密碼並同步更新密碼檔
  • 稽核 V$PWFILE_USERS 異常變動
  • 生產環境建議採用 EXCLUSIVE 模式並啟用審計

掌握密碼檔全生命週期管理,是 Oracle DBA 確保資料庫管理通道安全的基本功。

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