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

Oracle 密碼檔建立、使用與維護完整指南

     編輯:Oracle 資料庫基礎

密碼檔簡介

Oracle 密碼檔儲存 INTERNAL/SYS 及其他特權使用者 (SYSDBA/SYSOPER) 的認證資訊,預設位於 $ORACLE_HOME/dbs/PWDSID.ora。透過密碼檔可實現遠端/本機以特權身分登入資料庫。

一、建立密碼檔

使用 orapwd 工具:

orapwd file=<檔名> password=<SYS密碼> entries=<最大使用者數>
  • file:密碼檔完整路徑
  • password:設定 SYS 密碼
  • entries:允許的最大特權使用者數,建議預留較大值避免日後重建

二、設定初始化參數 REMOTE_LOGIN_PASSWORDFILE

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

搜尋順序:註冊表 ORA_SID_PWFILE → ORA_PWFILE → 預設 $ORACLE_HOME/dbs/PWDSID.ora。

三、新增/移除密碼檔使用者

前提:REMOTE_LOGIN_PASSWORDFILE=EXCLUSIVE。
操作實質為授予/撤銷 SYSDBA 或 SYSOPER 系統權限:

-- 以 SYSDBA 登入
CONNECT SYS/password AS SYSDBA;
STARTUP;

-- 建立一般使用者並授予特權
CREATE USER admin IDENTIFIED BY pwd;
GRANT SYSDBA TO admin;    -- 自動加入密碼檔
REVOKE SYSDBA FROM admin; -- 自動從密碼檔移除

四、使用密碼檔登入

-- 以特權使用者登入
CONNECT admin/pwd AS SYSDBA;

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

五、密碼檔維護

1. 查詢成員

SELECT * FROM V$PWFILE_USERS;

SYSDBA、SYSOPER 欄位為 TRUE/FALSE 表示擁有權限。

2. 擴充使用者上限

  1. 查詢 V$PWFILE_USERS 備份現有使用者清單
  2. 關閉資料庫
  3. 刪除舊密碼檔
  4. 用 orapwd 重建,調大 entries
  5. 依備份清單重新授予 SYSDBA/SYSOPER

3. 變更密碼檔狀態

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

4. 遷移密碼檔位置

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

5. 刪除密碼檔

先將所有實例 REMOTE_LOGIN_PASSWORDFILE=NONE,刪除檔案後,特權登入僅能透過作業系統驗證。

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