今天在一團混亂中解掉一枚Oracle連線茶包,由於相關環境與處理過程蠻雜亂的,這裡只整理結論備忘:

  • NETWORK\ADMIN\SQLNET.ORA裡預設有個設定SQLNET.AUTHENTICATION_SERVICES = (NTS)。這個設定可以允許Windows的Oracle Client用OS的身份連上Oracle,不用提供帳號密碼。(跟SQL的Integrated Security = SSPI概念類似)。
  • 今天在一個Oracle 9.2 Client與Oracle 10.2 Server都是在Windows平台的環境下,發現一個狀況: ASP.NET對Oracle執行一般的連線查詢更新動作都OK;若Oracle Connection被包在TransactionScope中,連線時會發生ORA-12638: Crendential retrieval failed(證明資料擷取失敗)的錯誤。
  • 將Oracle Client的SQLNET.AUTHENTICATION_SERVICES設定加#Remark掉,問題依舊存在,但IISRESET後問題就排除了。
  • Oracle Server要穿防火牆: 開1521 Port、Oracle.exe、TnsLsnr.exe三條例外。

Comments

Be the first to post a comment

Post a comment