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

Oracle 管理員認證機制深度解析:OS 認證 vs 密碼檔認證、參數交互、實戰配置指南

     編輯:Oracle 資料庫基礎

兩大認證模式本質

SYSDBA/SYSOPER 權限屬於資料庫外部認證,允許在資料庫未 OPEN 時連線。Oracle 提供兩種互斥/疊加的外部認證機制:

  • OS Authentication:透過作業系統群組成員身分驗證。
  • Password File Authentication:透過 $ORACLE_HOME/dbs/orapw 檔案驗證。

關鍵參數交互矩陣

SQLNET.AUTHENTICATION_SERVICESREMOTE_LOGIN_PASSWORDFILE生效模式適用場景
(NTS)NONE純 OS 認證本地管理、安全網路環境
(NONE) 或註釋EXCLUSIVE / SHARED純密碼檔認證遠程管理、不安全網路 (TCP/IP)
(NTS)EXCLUSIVE / SHARED**雙重生效** (OS 優先)混合環境、向後相容
鐵律:OS 認證優先級高於密碼檔。只要 OS 使用者屬於 ORA_DBA/ORA_OPER 群組並使用 CONNECT / AS SYSDBA,輸入的帳密將被忽略。

OS 認證配置步驟 (Windows/Linux 通用)

  1. 建立 OS 使用者 (如 oracle)。
  2. 加入對應群組:
    • Windows:ORA_DBA (SYSDBA)、ORA_OPER (SYSOPER)。
    • Linux/Unix:dba、oper (安裝時自動建立)。
  3. 設定 REMOTE_LOGIN_PASSWORDFILE=NONE (spfile/pfile)。
  4. sqlnet.ora 加入 SQLNET.AUTHENTICATION_SERVICES=(NTS)。
  5. 測試:sqlplus / as sysdba → 成功連線。

密碼檔認證配置步驟

  1. 建立密碼檔:orapwd file=$ORACLE_HOME/dbs/orapw password=SysPassword entries=10。
  2. 設定 REMOTE_LOGIN_PASSWORDFILE=EXCLUSIVE (單實例專用) 或 SHARED (多實例共享、僅含 SYS)。
  3. 確保 sqlnet.ora 無 NTS 或註釋掉。
  4. 建立管理使用者並授權:
    CREATE USER dba_user IDENTIFIED BY pwd;
    GRANT SYSDBA TO dba_user;  -- 自動寫入密碼檔
    -- 或 GRANT SYSOPER TO dba_user;
  5. 查詢密碼檔成員:SELECT * FROM v$pwfile_users;。
  6. 遠程連線測試:sqlplus dba_user/pwd@tns_alias as sysdba。

REMOTE_LOGIN_PASSWORDFILE 三值差異

值含義密碼檔內容典型用途
NONE不使用密碼檔無純 OS 認證
EXCLUSIVE獨佔使用SYS + 其他獲授權使用者單實例、需建立管理用戶
SHARED多實例共享僅 SYS一套密碼檔服務多個 SID (舊版 RAC 常見)

非管理員 OS 認證 (OPS$)

-- 建立外部認證使用者
CREATE USER ops$user IDENTIFIED EXTERNALLY;
-- OS 使用者 ops$user 登入後
CONN /@db_alias  -- 無需帳密,自動映射
  • 參數 OS_AUTHENT_PREFIX (預設 OPS$) 決定映射前綴。
  • 適用於批次腳本、應用伺服器連線池免密碼部署。

常見問題排查

現象原因對策
ORA-01031 insufficient privilegesOS 使用者未加入 ORA_DBA/ORA_OPER檢查群組成員、重新登入 OS 會話
密碼檔認證失敗 ORA-01017密碼檔版本不符 (12c+ 預設區分大小寫)、entries 滿重建密碼檔 orapwd ... force=y、增大 entries
v$pwfile_users 為空授權後未重啟實例 (SHARED 模式)重啟實例或改用 EXCLUSIVE

最佳實踐建議

  1. **生產環境預設啟用密碼檔 (EXCLUSIVE)**,支援 Data Guard、RMAN 遠程備份、Enterprise Manager 管理。
  2. 本地 DBA 維護可同時保留 OS 認證 (雙重生效),便於 / as sysdba 快速登入。
  3. 定期備份 orapw,密碼變更後同步備份。
  4. 12c+ 啟用 SEC_CASE_SENSITIVE_LOGON=TRUE (預設),密碼區分大小寫。
  5. 審計需求下,啟用 AUDIT_SYS_OPERATIONS=TRUE 記錄所有 SYS 操作至 OS 審計檔。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved