首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> Oracle 資料庫 >> Oracle 資料庫基礎

Oracle密碼文件管理五大核心實戰:創建、授權、登錄、維護與遷移

     編輯:Oracle 資料庫基礎

密碼文件角色定位

$ORACLE_HOME/dbs/orapw(或ASM中+DATA/orapw)存儲SYS/INTERNAL及授予SYSDBA/SYSOPER權限用戶的密文,支撐遠程/本地特權登錄。兩種認證模式:OS認證(本地/ AS SYSDBA)與密碼文件認證(遠程SYS/pass@db AS SYSDBA)。

一、 密碼文件創建

1. DBCA創建實例時自動生成

路徑:$ORACLE_HOME/dbs/orapw,初始包含SYS密碼。

2. 手工創建 ORAPWD 工具

# Linux/Unix
$ORACLE_HOME/bin/orapwd FILE=$ORACLE_HOME/dbs/orapwPROD \
  PASSWORD=SysP@ssw0rd ENTRIES=30 FORCE=Y

# Windows
%ORACLE_HOME%\bin\orapwd FILE=%ORACLE_HOME%\database\PWDORCL.ora \
  PASSWORD=SysP@ssw0rd ENTRIES=30 FORCE=Y
參數說明建議
FILE密碼文件全路徑標準位置便於自動發現
PASSWORDSYS/INTERNAL初始密碼強密碼,特殊字符需轉義
ENTRIES最大用戶槽位數預留充足(如50),超限需重建
FORCE=Y覆蓋現有文件謹慎使用,確認備份
IGNORECASE=Y12c+大小寫不敏感模式兼容舊應用,新建議N

二、 關鍵初始化參數 REMOTE_LOGIN_PASSWORDFILE

值含義適用場景
NONE不使用密碼文件,純OS認證極高安全環境,禁用遠程特權登錄
EXCLUSIVE單實例獨享,可存非SYS用戶標準生產模式,支援GRANT SYSDBA
SHARED多實例共享,僅識別SYSRAC共享口令文件(12c+建議ASM共享存儲)

搜索優先級:ORA_SID_PWFILE註冊表/環境變量 → ORA_PWFILE → 默認$ORACLE_HOME/dbs/orapw。

三、 用戶授權與密碼文件同步

核心機制:GRANT SYSDBA/SYSOPER TO user 時,用戶自動寫入密碼文件(EXCLUSIVE模式)。REVOKE 時自動移除。

操作流程

-- 1. 確保參數正確
ALTER SYSTEM SET REMOTE_LOGIN_PASSWORDFILE=EXCLUSIVE SCOPE=SPFILE;
-- 需重啟生效

-- 2. SYSDBA登錄
CONNECT SYS/SysP@ssw0rd AS SYSDBA

-- 3. 創建業務管理用戶
CREATE USER dba_admin IDENTIFIED BY Adm1nP@ss;

-- 4. 授予特權(自動寫入密碼文件)
GRANT SYSDBA TO dba_admin;

-- 5. 驗證遠程登錄
-- 遠程機器:
sqlplus dba_admin/Adm1nP@ss@PROD AS SYSDBA

查詢密碼文件成員

SELECT * FROM V$PWFILE_USERS;
-- USERNAME | SYSDBA | SYSOPER | SYSASM | SYSBACKUP | SYSDG | SYSKM | CON_ID

四、 密碼文件維護進階

1. 擴容 ENTRIES(超限時)

-- 1. 備份現有成員
SELECT username FROM V$PWFILE_USERS;

-- 2. 關閉數據庫
SHUTDOWN IMMEDIATE

-- 3. 刪除舊文件
RM $ORACLE_HOME/dbs/orapwPROD

-- 4. 重建大容量文件
ORAPWD FILE=$ORACLE_HOME/dbs/orapwPROD PASSWORD=SysP@ssw0rd ENTRIES=100 FORCE=Y

-- 5. 啟動數據庫
STARTUP

-- 6. 重新授權(自動寫入)
GRANT SYSDBA TO dba_admin; -- 等所有用戶

2. 修改文件狀態(SHARED ↔ EXCLUSIVE)

-- 修改參數
ALTER SYSTEM SET REMOTE_LOGIN_PASSWORDFILE=EXCLUSIVE SCOPE=SPFILE;
-- 重啟實例,啟動時自動同步文件內部狀態標誌

注意:多實例環境需確保所有節點SPFILE參數一致,否則啟動衝突導致文件狀態反覆翻轉。

3. 遷移存儲位置(文件系統 → ASM / 磁盤重組)

-- 1. 複製到新位置(ASM示例)
ASMCMD> cp $ORACLE_HOME/dbs/orapwPROD +DATA/PROD/orapwPROD

-- 2. 修改指向參數(需重啟)
ALTER SYSTEM SET ORA_PROD_PWFILE='+DATA/PROD/orapwPROD' SCOPE=SPFILE;
-- 或設置環境變量 ORA_PWFILE

-- 3. 重啟驗證
SHUTDOWN IMMEDIATE; STARTUP;
SELECT * FROM V$PWFILE_USERS; -- 確認成員正常

五、 RAC/多實例最佳實踐

  • 12c+ 推薦:密碼文件置於共享ASM磁盤組(+DATA),所有實例掛載同一文件,參數REMOTE_LOGIN_PASSWORDFILE=EXCLUSIVE。
  • 11gR2:各實例本地文件同步,或共享NFS掛載點(需鎖機制)。
  • 定期備份密碼文件至異地(ASMCMD cp / scp),納入備份策略。

避坑指南

  1. FORCE=Y 重建前必備份成員列表,否則丟失所有SYSDBA授權記錄。
  2. SHARED模式下 GRANT SYSDBA 不生效,文件不寫入非SYS用戶。
  3. 修改 SYS 密碼:ALTER USER SYS IDENTIFIED BY NewPass; 會自動同步更新密碼文件(EXCLUSIVE模式)。
  4. 口令文件損壞/丟失:ORAPWD 重建 + GRANT SYSDBA 重授權,業務無感(除非有遠程特權會話在線)。

總結

密碼文件是特權訪問的「鑰匙串」。核心管理邏輯:標準位置+EXCLUSIVE模式+充足ENTRIES+定期備份+授權即同步。將ORAPWD重建、V$PWFILE_USERS巡檢、REMOTE_LOGIN_PASSWORDFILE一致性檢查納入月度運維清單。

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