連接Oracle數據庫出現這個問題,你遇到過嗎?

Net程序連接遠程oracles數據庫時,報出一下錯誤:ORA-o1017:用戶名/密碼無效,登錄被拒絕,但是我們使用PL/SQL可以正常連接,那麼這是怎麼回事呢?

首先,我們需要確保程序中的遠程地址端口、服務名以及用戶名和密碼都是正確的,但是還是發現報出ORA-01017錯誤,例如像筆者這種:

連接Oracle數據庫出現這個問題,你遇到過嗎?


其次,你是不是很崩潰,那麼你接下來會怎麼做呢?我就把代碼逐語句地進行調試,發現配置文件都能夠獲取到,說明數據庫的配置是正常的,但是登錄經常被拒絕,我百思不得其解,這幾個月由於不做數據相關的工作,所以無需連接數據庫,我就點擊繼續忽略異常。但當自己真的要進行數據庫的連接時,這個問題成了我最大的絆腳石,我在搜索引擎上搜了好多資料,有的說安裝客戶端的,安裝客戶端又安裝服務端,最後又覺得是位數不一致,又開始卸載oracle。在自己電腦上嘗試了好幾天都沒能解決這個問題,感覺應該是系統的鍋,然後又在家中的電腦嘗試,家中的電腦是windows10,但是電腦上缺少的編譯文件太多,項目又運行不起來,安裝完全又得耗費很長時間,當然我並不希望是系統的問題,因為真的是系統的問題的話,那麼我就得換我電腦上的系統,電腦上資料軟件特別多,不到迫不得已都不想這麼折騰。於是就和這個異常槓上了,一天、二天、三天,終於在昨天晚上瀏覽網上相關的錯誤信息時,一種解決方法映入眼簾(說實話是我無知了):FIPS兼容性存在問題!

對,你沒有看錯,我都沒有聽說過這是個啥,但是它真的解決了我的問題。那麼我們先來看看這東西到底是個啥?

官方定義:FIPS Publication 140-2是NIST所發佈的針對密碼模塊的安全需求(Security requirements for cryptographic modules)標準。FIPS 140-2,這些標準和方針由NIST發佈,並作為聯邦信息處理標準(FIPS)在政府機構廣泛採用。

FIPS 是由兩個政府主體開發的標準。一個是美國國家標準和在美國境內的技術。另一種是通信安全機構,在加拿大。FIPS 是建議或要求使用 (美國或加拿大) 的聯邦政府操作 IT 系統中的標準。

看完還是懵懵懂懂的,那麼解決這個問題的辦法到底是什麼呢?關閉FIPS校驗

兩個方法:

第一種方法是通用的也是比較直接的(建議使用):修改註冊表

在運行框中輸入regedit進入註冊表,然後找到

HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Control\\Lsa\\FipsAlgorithmPolicy

連接Oracle數據庫出現這個問題,你遇到過嗎?

連接Oracle數據庫出現這個問題,你遇到過嗎?

設置enabled值為0


第二種方法(適用於.net程序,但筆者未驗證,網上找到的方法,讀者可自行驗證):

.Net程序可以通過再其 .config文件中添加以下配置來關閉 FIPS 校驗

連接Oracle數據庫出現這個問題,你遇到過嗎?

不過筆者還是推薦使用第一種方法進行關閉FIPS校驗,修改註冊表相當在根本上解決了問題。總之這個錯誤筆者也是搞了三天三夜才解決,把它記錄下來寫給大家,屏幕前面的你如果也遇到同樣的問題,希望您能夠按照我的方法解決您的問題,節省你的時間,覺得這篇文章還不錯的,請你素質三連一下,您的點贊是我持續寫作的動力。


分享到:


相關文章: