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/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Oracle資料庫限制訪問IPOracle資料庫
- 如何限制ip訪問Oracle資料庫Oracle資料庫
- Oracle 12C資料庫連結報錯:ORA-28040: 沒有匹配的驗證協議Oracle資料庫協議
- Oracle 12c資料庫安裝Oracle資料庫
- [20230308]12c以上版本模糊查詢問題.txt
- Oracle透明閘道器訪問SQLServer資料庫OracleSQLServer資料庫
- Oracle透明閘道器訪問MySQL資料庫OracleMySql資料庫
- Oracle 12C RAC CDB資料庫部署Oracle資料庫
- 【磐維資料庫】Oracle(透明閘道器)訪問磐維資料庫(PanWeiDB)資料庫Oracle
- ORACLE 12C RAC資料庫的啟停Oracle資料庫
- 【RAC】Oracle 12c以及以上版本的diagsnap是什麼? (Doc ID 2469643.1)Oracle
- JDBC資料庫訪問JDBC資料庫
- 【Oracle 12c資料庫支援閃回庫功能】實驗Oracle資料庫
- 低版本客戶端連線高版本資料庫報錯ORA-28040、ORA-01017客戶端資料庫
- Oracle DBLink跨資料庫訪問SQL server資料同步 踩坑實錄Oracle資料庫SQLServer
- [20190107]12c以上版本配置dg注意.txt
- Oracle資料庫連結(DBLink)中如何訪問包含BLOB欄位的資料Oracle資料庫
- Oracle 12c系列(一)|多租戶容器資料庫Oracle資料庫
- Oracle資料庫12c最新安全工具Data RedactionFPOracle資料庫
- 外網訪問MySQL資料庫MySql資料庫
- 將Oracle 12c資料庫註冊到Oracle 19c Grid InfrastructureOracle資料庫ASTStruct
- 1.4.1. 關於Oracle 資料庫版本號Oracle資料庫
- oracle 12c 資料庫例項監聽無法註冊問題一例Oracle資料庫
- Oracle如何診斷遠端訪問資料庫慢/超時等問題小結Oracle資料庫
- 使用 @NoRepositoryBean 簡化資料庫訪問Bean資料庫
- jmeter 使用 ssh 方式訪問資料庫JMeter資料庫
- Oracle資料訪問元件ODAC的安裝方法Oracle元件
- 【磐維資料庫】透過python訪問磐維資料庫資料庫Python
- PLSQL通過Oracle 11g客戶端連線Oracle 12c伺服器錯誤 ORA-28040SQLOracle客戶端伺服器
- ORACLE---Aix7.1 安裝Oracle11.2.0.4版本資料庫OracleAI資料庫
- Xamarin SQLite教程資料庫訪問與生成SQLite資料庫
- Python學習之旅:訪問MySQL資料庫PythonMySql資料庫
- 資料庫訪問幾種方式對比資料庫
- [開源] .Net ORM 訪問 Firebird 資料庫ORM資料庫
- TiDB資料庫left join與版本問題TiDB資料庫
- [20211115]12c以上版本Last Login Time 引發的故障.txtAST
- [20210421]12c以上版本增加欄位與預設值.txt
- Pandas庫基礎分析——資料生成和訪問