存放 INTERNAL/SYS 及具 SYSDBA/SYSOPER 權限用戶的認證資訊,支援遠端/本地特權登入。預設位於 $ORACLE_HOME/dbs/PWDsid.ora(Unix)或 database\PWD%sid%.ora(Windows)。
orapwd file=$ORACLE_HOME/dbs/PWDsid.ora password=sys_pwd entries=30
entries:最大特權用戶數,預留成長空間(超額需重建)。| 值 | 說明 |
|---|---|
| NONE | 不使用密碼檔,採 OS 驗證(預設) |
| EXCLUSIVE | 單實例專用,可包含非 SYS 特權用戶,允許 GRANT SYSDBA |
| SHARED | 多實例共用,僅識別 SYS/INTERNAL,忽略其他用戶 |
生產環境建議設為 EXCLUSIVE,啟用遠端特權管理。
REMOTE_LOGIN_PASSWORDFILE=EXCLUSIVE。CONNECT sys/pwd AS SYSDBA。GRANT SYSDBA TO scott;(自動寫入密碼檔)。REVOKE SYSDBA FROM scott;(自動移除)。查詢成員:SELECT * FROM v$pwfile_users;
-- 特權用戶
CONNECT scott/tiger AS SYSDBA
-- INTERNAL(舊版相容)
CONNECT INTERNAL/internal_pwd
v$pwfile_users 記錄。orapwd 重建更大 entries。移動檔案後,更新註冊表/環境變數 ORA_SID_PWFILE 或 ORA_PWFILE 指向新路徑。
先將所有實例 REMOTE_LOGIN_PASSWORDFILE=NONE,再刪檔。之後僅能 OS 驗證登入。
600,僅 owner 可讀寫。v$pwfile_users,撤銷離職/異動人員特權。