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

Oracle 密碼檔完整管理指南:建立、授權、維護與遠端登入

     編輯:Oracle 資料庫相關知識

密碼檔:特權用戶遠端認證的基石

特權用戶(INTERNAL/SYSDBA/SYSOPER)登入 Oracle 有兩種驗證方式:作業系統驗證、密碼檔驗證。密碼檔存放 SYS/INTERNAL 密碼及其他特權用戶帳密,預設位於 $ORACLE_HOME/dbs/orapw (Unix) 或 %ORACLE_HOME%\database\PWD.ORA (Windows)。

一、建立密碼檔:ORAPWD 工具

orapwd file=<檔案路徑> password= entries=<最大用戶數> [force=y|n]
  • file:完整路徑檔名,如 /u01/app/oracle/dbs/orapworcl
  • password:設定 SYS/INTERNAL 初始密碼
  • entries:最大特權用戶數(含 SYS),預留充足空間避免日後重建
  • force=y:覆蓋既有檔案

二、關鍵參數:REMOTE_LOGIN_PASSWORDFILE

搜尋順序:Registry ORA_SID_PWFILE → ORA_PWFILE → 預設 $ORACLE_HOME/dbs/orapw

三、授予/撤銷 SYSDBA/SYSOPER:實際即寫入密碼檔

-- 必須以 SYSDBA 連線,且參數為 EXCLUSIVE
CONNECT SYS AS SYSDBA;
STARTUP;

CREATE USER dba_user IDENTIFIED BY pwd;
GRANT SYSDBA TO dba_user;     -- 寫入密碼檔
REVOKE SYSDBA FROM dba_user;  -- 從密碼檔移除

只有被授予 SYSDBA/SYSOPER 的用戶才存在於密碼檔中。

四、使用密碼檔遠端登入

# 以 SYSDBA 登入
sqlplus dba_user/pwd@tns_alias AS SYSDBA

# 以 INTERNAL 登入 (8i 相容)
sqlplus INTERNAL/pwd@tns_alias

登入後位於 SYS Schema 下。參數必須為 EXCLUSIVE 或 SHARED。

五、密碼檔維護操作

  1. 查看成員:SELECT * FROM V$PWFILE_USERS;(SYSDBA/SYSOPER 欄為 TRUE/FALSE)
  2. 擴充用戶數上限:需重建密碼檔
    # 1. 備份 V$PWFILE_USERS 查詢結果
    # 2. SHUTDOWN IMMEDIATE
    # 3. 刪除舊密碼檔
    # 4. ORAPWD 建立新檔(較大 entries)
    # 5. 重新 GRANT SYSDBA 給備份用戶
  3. 變更狀態:修改 REMOTE_LOGIN_PASSWORDFILE 參數,重啟實例時自動同步至密碼檔。多節點需保持參數檔一致
  4. 移動檔案位置:移動後更新 Registry/環境變數指向新路徑
  5. 刪除密碼檔:所有實例參數設 NONE → 刪除檔案 → 後續僅能 OS 驗證登入

安全最佳實務

  • 密碼檔權限 600 (Unix) / 僅 Administrators/Oracle 服務帳號可讀 (Windows)
  • SYS 密碼定期輪換,同步更新密碼檔(ORAPWD force=y 或 ALTER USER SYS IDENTIFIED BY ...)
  • 嚴格控制 SYSDBA/SYSOPER 授予對象,定期審查 V$PWFILE_USERS
  • 啟用 AUDIT SYSDBA、AUDIT SYSOPER 記錄特權操作

密碼檔是 Oracle 特權存取控制的核心基礎設施。從建立參數規劃、授權流程標準化、到定期審計與備份,每個環節都關乎資料庫最高權限的安全防線。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved
值行為適用場景
NONE不使用密碼檔,純 OS 驗證單機、OS 認證完備環境
EXCLUSIVE單一實例專用,**支援非 SYS 特權用戶**生產標準、需遠端 SYSDBA 管理
SHARED多實例共用,**僅識別 SYS/INTERNAL**RAC/多實例共享、不授予其他用戶 SYSDBA