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

ORA-12638「身分驗證擷取失敗」快速排查與根治

     編輯:Oracle 資料庫基礎

現象

透過 DB Link 查詢遠端資料庫報錯:ORA-12638: Credential retrieval failed。檢視 DB Link 狀態為非活動,網域控制器無法連線。

根因

Windows NTS (NT Security) 驗證機制失效。Oracle 嘗試用作業系統憑證認證,但網域服務異常或 sqlnet.ora 設定衝突。

三步解決

  1. 修改 sqlnet.ora($ORACLE_HOME/network/admin):
    # 註解或移除原 NTS 設定
    # SQLNET.AUTHENTICATION_SERVICES = (NTS)
    # 改為無驗證或 TCP
    SQLNET.AUTHENTICATION_SERVICES = (NONE)
    # 或
    SQLNET.AUTHENTICATION_SERVICES = (TCP)
  2. 重建 Net8 服務名稱:
    • Net8 Configuration Assistant → 本地網路服務名稱設定 → 刪除舊服務名 → 新增同名服務名。
  3. 重啟 Oracle 服務(Listener + Instance)。

驗證

再次測試 SELECT * FROM t@dblink 應正常返回。

補充說明

  • NTS:Windows 原生驗證,依賴網域控制器。
  • 設為 NONE 後改用資料庫帳號密碼驗證,規避 OS 層面問題。
  • 若環境為 Kerberos/SSL,請對應調整 AUTHENTICATION_SERVICES 參數值。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved