您好,登錄后才能下訂單哦!
隨著Oracle 12C 18C 19C 20C 的推出大家在核心或者非核心數據庫開始升級,以保證數據庫的安全性和穩定性,但在數據庫升級后用舊版本的JDBC或者Oracle客戶端訪問數據庫的時候會出現無法登陸,ORA-28040 0RA-03134報錯問題,此次設計三個參數12C以前的參數ALLOWED_LOGON_VERSION 及12C 開始使用的新參數ALLOWED_LOGON_VERSION_SERVER/ALLOWED_LOGON_VERSION_CLIENT本章我們節點說明一下其中的緣由,希望可以為大家解惑!
低版本的數據庫(11G及以下)的JDBC或者客戶端訪問高版本的數據庫(12C及以上)報錯信息
ORA-28040: No matching authentication protocol error
ORA-03134: Connections to this server version are no longer supported
原因:
我們先引入參數:
SQLNET.ALLOWED_LOGON_VERSION=9
該參數是在Oracle 下的Oracle_HOME/network/admin/sqlnet.ora 文件中調整。
該參數在這里的意思是版本9及以上將允許登錄。上述參數允許9i、10g和11個版本訪問數據庫。版本8i在“ORA-28040:沒有匹配的身份驗證協議”時會失敗。
如果我們選擇了SQLNET.ALLOWED_LOGON_VERSION = 10,意思允許10g和11g版本訪問數據庫。對于ORA-28040, 9i和8i版本將失敗。
在Oracle數據庫12c中不在使用ALLOWED_LOGON_VERSION參數,改為兩個新的Oracle Net服務參數:
SQLNET.ALLOWED_LOGON_VERSION_SERVER=n
SQLNET.ALLOWED_LOGON_VERSION_CLIENT=n
在 12.1版本中,新參數的默認設置是11。任何試圖連接的客戶端都必須是11G 及以上,除非在服務器端sqlnet中顯式設置了這些參數,否則應該使用version 11或更高版本。
在 12.2版本,SQLNET的默認值ALLOWED_LOGON_VERSION_SERVER設置在12.2中從11更改為12。如果您的客戶端不超過11.2.0.3或包含CPUOCT2012補丁,這就是我們把數據庫升級到12C,大家高頻率出現該問題的原因。
注意:建議該參數調整成8或者9等當前環境的最低版本
注意:SQLNET.ORA 文件下,當數據庫充當客戶端時,服務器上需要使用ALLOWED_LOGON_VERSION_CLIENT。比如在dblink的使用情況下。在此更改之后,我們不需要重新啟動偵聽器或數據庫。
具體說明如下鏈接:
https://docs.oracle.com/database/121/NETRF/sqlnet.htm#NETRF2010
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。