ORA-01017: 無效的使用者名/密碼;登錄被拒絕
還問了其他類似的問題,但沒有一個能夠告訴我為什麼我無法使用我站起來的 C# .NET 網站進行連接。雖然我知道這個論壇更適合 DBA 使用工具連接到數據庫,而不是太多故障排除應用程序連接,但我想我會嘗試在這裡發布問題。
該網站從 Visual Studio 執行時從我的工作站工作/連接,但是當我將它發佈到伺服器時,它給了我
ORA-01017: invalid username/password;logon denied
錯誤,即使我可以使用相同的帳戶/密碼通過其他所有東西連接。情況:
- 我可以使用 Oracle SQL Developer、SQL*Plus 與我正在使用的帳戶進行連接……讓我們稱之為“我的帳戶”。
- 使用網路管理器,我可以展開“服務命名”並查看我的 tnsnames.ora 中的條目。
一種。存在於 tnsnames.ora/Service Naming 區域中的相同字元串在我的應用程序中以硬編碼字元串的形式存在,除了主機名、服務名、埠、使用者名和密碼之類的內容之外,它們被傳遞 -作為來自我的 web.config 的參數。
灣。我可以點擊連接名稱,一切都正確顯示,然後點擊“測試服務”>“更改登錄”>輸入“我的帳戶”和密碼>點擊“確定”>點擊“測試”成功。
C。我已經在我的 web.config 中仔細檢查了我的參數 - 自從網站在我的本地工作站上執行以來,沒有任何改變。 3.
tnsping CONNECTION_NAME
成功。 4. 兩台電腦上的環境變數相同,Oracle 客戶端位置也是如此。一種。
ORACLE_HOME
=C:\oracle\product\12
乙。
PATH
=C:\oracle\product\12\bin;
…..c.
TNS_ADMIN
=C:\oracle\product\12\network\admin
d。
HKLM\Software\Oracle\KEY_OraClient12Home
添加到forTNS_ADMIN
=的系統資料庫項C:\oracle\product\12\network\admin
5. 我已經嘗試了該ALTER SYSTEM SET SEC_CASE_SENSITIVE_LOGON = FALSE;
命令並重置了密碼,以防萬一出現問題。我嘗試連接 myaccount 及其密碼的全大寫版本,以及兩者的所有小寫版本(兩者的小寫版本是我最初在我的工作站上工作時的樣子)。 6. 該帳戶有一個PASSWORD_VERSIONS
和10G
-11G
我不知道我使用的是 12c 客戶端並且12C
不存在是否重要。伺服器和我的工作站之間的主要區別是我在伺服器上只有 12c 客戶端 - 我的工作站上有 10g、11g 和 12c。我打算嘗試使用 11g ODP.NET 程序集,Oracle.DataAccess.dll
但我的程式碼無法編譯(我得到"Could not load file or assembly 'Oracle.DataAccess' or one of its dependencies. An attempt was made to load a program with an incorrect format.".
),即使將命名空間從 更改using Oracle.ManagedDataAccess.Client
為using Oracle.DataAccess.Client
. 7. 嘗試傳入帶引號的密碼,但沒有 - 這兩種方法都適用於我的 Visual Studio 實例,但不適用於伺服器。 8. 如果我故意輸入一個完全偽造的密碼,並在伺服器上執行該站點足夠多次,它將鎖定該帳戶,所以我知道它正在連接到數據庫。沒有東西可以嘗試……任何幫助/建議將不勝感激。
到目前為止,我只見過一次,但 My Oracle 支持說明中描述了一個問題:
FIPS 使用導致 ORA-01017:託管 ODP.NET 的使用者名/密碼無效(文件 ID 1937500.1)
我不會發布它的全部內容,因為它不是公開的,但這裡是本質:
此錯誤已在 12.1.0.2 託管提供程序中修復。請注意,數據庫版本必須為 12.1.0.2 或更高版本,此修復程序才能按預期工作。
解決方法是在系統資料庫中設置
System\CurrentControlSet\Control\Lsa\FIPSAlgorithmPolicy\Enabled
為0
.對此問題的一些公開參考:
https://stackoverflow.com/questions/31785650/ora-01005-error-connecting-with-odp-net
https://community.oracle.com/thread/2557592?start=0&tstart=0