oracle 12C以上 版本資料庫訪問 ORA-28040 ORA-03134
隨著Oracle 12C 18C 19C 20C 的推出,很多單位已經開始升級現有的低版本資料庫,同時新上線的系統也按照部署到Oracle 19C 上,以次跟進Oracle 的軟體更新迭代。但在資料庫升級後用我們會在新版本和舊版本的回訪上開始出現問題,我們這裡主要說一下透過JDBC或者Oracle客戶端訪問資料庫的時候會出現如下報錯,
ORA-28040: No matching authentication protocol error.
ORA-03134: Connections to this server version are no longer supported error.
報錯問題,此次涉及三個引數,在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 檔案中調整。
該引數在這裡的意思是authentication protocol 版本9及以上將允許登入。上述引數允許9i、10g和11G版本訪問資料庫。資料庫版本如果是8i 就會報如下錯誤“
ORA-28040: No matching authentication
”。
如果我們選擇了SQLNET.ALLOWED_LOGON_VERSION = 10,意思允許10g和11g版本訪問資料庫,9i和8i版訪問將失敗。
在Oracle資料庫12c中不在使用ALLOWED_LOGON_VERSION引數,改為兩個新的Oracle Net服務引數:
SQLNET.ALLOWED_LOGON_VERSION_SERVER=n
SQLNET.ALLOWED_LOGON_VERSION_CLIENT=n
Oracle 官方文件對該引數的解釋分別是:
To set the minimum authentication protocol allowed when connecting to Oracle Database instances.
To set the minimum authentication protocol allowed for clients, and when a server is acting as a client, such as connecting over a database link, when connecting to Oracle Database instances.
在 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的使用情況下。在此更改之後,我們不需要重新啟動偵聽器或資料庫。
具體說明如下連結:
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/26342786/viewspace-2709283/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 12C資料庫連線ORA-28040問題資料庫
- Oracle資料庫訪問控制Oracle資料庫
- Oracle資料庫限制訪問IPOracle資料庫
- 如何限制ip訪問Oracle資料庫Oracle資料庫
- Oracle資料庫訪問效能優化Oracle資料庫優化
- Oracle 12C資料庫連結報錯:ORA-28040: 沒有匹配的驗證協議Oracle資料庫協議
- 【方法】如何限定IP訪問Oracle資料庫Oracle資料庫
- 如何限定IP訪問Oracle資料庫-轉Oracle資料庫
- 禁止某個IP訪問Oracle資料庫Oracle資料庫
- Oracle透明閘道器訪問SQLServer資料庫OracleSQLServer資料庫
- Oracle透明閘道器訪問MySQL資料庫OracleMySql資料庫
- JDBC資料庫訪問JDBC資料庫
- Oracle資料鏈+同義詞+訪問遠端資料庫Oracle資料庫
- Oracle 12c資料庫安裝Oracle資料庫
- ubuntu下python通過sqlalchemy庫訪問oracle資料庫UbuntuPythonSQLOracle資料庫
- 觸發器限制指定IP訪問oracle資料庫觸發器Oracle資料庫
- Oracle資料庫訪問限制繞過漏洞 解決Oracle資料庫
- Windows 下JDBC 訪問Oracle11g 資料庫WindowsJDBCOracle資料庫
- 異構資料庫訪問資料庫
- Oracle 12C RAC CDB資料庫部署Oracle資料庫
- Oracle 各版本資料庫文件Oracle資料庫
- jboss訪問資料庫的問題資料庫
- 【RAC】Oracle 12c以及以上版本的diagsnap是什麼? (Doc ID 2469643.1)Oracle
- 使用Oracle Net實現限制特定IP訪問資料庫Oracle資料庫
- Oracle,SqlServer,Access資料庫通用訪問類設計(轉)OracleSQLServer資料庫
- 【磐維資料庫】Oracle(透明閘道器)訪問磐維資料庫(PanWeiDB)資料庫Oracle
- 【12C】Oracle 12c 可插拔資料庫之資料泵功能體驗Oracle資料庫
- 外網訪問MySQL資料庫MySql資料庫
- C#訪問MySQL資料庫C#MySql資料庫
- C#訪問SQLite資料庫C#SQLite資料庫
- 訪問HyperSQL資料庫的方法SQL資料庫
- 限制特定IP訪問資料庫資料庫
- ORACLE 12C RAC資料庫的啟停Oracle資料庫
- Oracle 12c資料庫升級實戰Oracle資料庫
- Oracle Database 12c可插拔資料庫案例OracleDatabase資料庫
- 資料庫如何處理大資料訪問資料庫大資料
- 求助:資料庫併發訪問問題資料庫
- ORACLE資料庫各個版本PATCHOracle資料庫