ORACLE 12C連線時報ORA28040和ORA01017的錯誤
【一】環境說明
1.1 Oracle服務端版本:12.2.0.1
1.2 Oracle客戶端版本:11.2.0.1
【二】問題說明
2.1 客戶端連線服務端的時候報ORA-28040的錯誤。
2.2 客戶端連線的時候報ORA-01017的錯誤。
【三】解決方法
3.1 ORA-28040錯誤的解決方法:
在資料庫伺服器上的oracle/network/admin/sqlnet.ora,增加如下
[oracle@rdb02 admin]$ cat sqlnet.ora
NAMES.DIRECTORY_PATH= (TNSNAMES, EZCONNECT)
SQLNET.ALLOWED_LOGON_VERSION_SERVER=8
SQLNET.ALLOWED_LOGON_VERSION_CLIENT=8
然後重啟監聽即可
lsnrctl stop
lsnrctl start
lsnrctl start
3.2 客戶端連線的時候報ORA-01017的錯誤的解決方法:
在上一步的基礎上面,修改使用者名稱密碼即可;
SQL> ALTER USER system IDENTIFIED BY 12345678;
【四】原因分析
4.1 關於ORA-28040的錯誤原因,轉發個連結:http://blog.itpub.net/28612416/viewspace-2138896/
簡單可以理解:sqlnet值沒設定的情況下ORACLE 12C的服務端只執行12C的客戶端進行連線,所以透過11版本的客戶端連線的時候就會報ORA-28040的錯誤。透過增加以上引數就可以讓ORACLE12C的服務端執行較低的客戶端進行連線;
4.2 關於密碼報ORA-01017錯誤的分析如下:
-
資料庫的密碼是經過加密的,資料庫經過幾個版本的更新每個版本的加密方法其實都是不一樣的。
-
dba_users有儲存一個PASSWORD_VERSIONS的資訊,PASSWORD_VERSIONS的資訊說明資料庫保留密碼解析的版本種類。
- 使用者登入的時候就會根據Client端的版本判斷用哪種的解析方法進行解密
- 客戶端的版本和PASSWORD_VERSIONS的版本匹配能解析,否則就解析不了;
SQL> select username,password,PASSWORD_VERSIONS from dba_users where username in ('SCOTT','SYSTEM')
USERNAME PASSWORD PASSWORD_VERSIONS
-------------------- -------------------- --------------------
SYSTEM 11G 12C #要求客戶端的版本最低為11.2.0.3
SCOTT 10G 11G 12C #要求客戶端的版本最低為10
4.3 PASSWORD_VERSIONS版本又是怎麼產生的了?
PASSWORD_VERSIONS的生跟上面的sqlnet.ora的一個引數:SQLNET.ALLOWED_LOGON_VERSION_SERVER。SQLNET.ALLOWED_LOGON_VERSION_SERVER設定不同值,就產生對應的password_versions。
所以當SQLNET.ALLOWED_LOGON_VERSION_SERVER=8時,PASSWORD_VERSIONS對應的值就是10G 11G 12C
SQLNET.ALLOWED_LOGON_VERSION_SERVER=8,PASSWORD_VERSIONS對應的值就是11G 12C
PASSWORD_VERSIONS的生跟上面的sqlnet.ora的一個引數:SQLNET.ALLOWED_LOGON_VERSION_SERVER。SQLNET.ALLOWED_LOGON_VERSION_SERVER設定不同值,就產生對應的password_versions。
所以當SQLNET.ALLOWED_LOGON_VERSION_SERVER=8時,PASSWORD_VERSIONS對應的值就是10G 11G 12C
SQLNET.ALLOWED_LOGON_VERSION_SERVER=8,PASSWORD_VERSIONS對應的值就是11G 12C
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/12679300/viewspace-2150667/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- PD連線oracle時報錯Oracle
- EF:開啟Oracle連線時報錯Oracle
- perl連線Oracle錯誤Oracle
- 連線oracle錯誤解決辦法Oracle
- 寬頻連線錯誤678 寬頻連線錯誤691錯誤的解決辦法
- Python連線Oracle相關步驟和錯誤記錄PythonOracle
- Jdbc連線Oracle常見錯誤彙總JDBCOracle
- 連線資料庫時報錯ORA-12520和ORA-12516錯誤資料庫
- Oracle 資料庫連線錯誤解決方法Oracle資料庫
- PLSQL通過Oracle 11g客戶端連線Oracle 12c伺服器錯誤 ORA-28040SQLOracle客戶端伺服器
- SQLYOG連線資料庫時報錯1251SQL資料庫
- 連線oracle報錯Oracle
- Oracle的左連線和右連線Oracle
- 連線RMAN時報錯ora-01008
- PL/SQL Developer連線到Oracle 12cSQLDeveloperOracle
- 解決IE上登陸oracle OEM時報:“證書錯誤,導航已阻止”的錯誤Oracle
- 寬頻連線錯誤651怎麼辦 寬頻連線錯誤651故障排除方法
- mysql連線錯誤(2013)MySql
- Oracle 12C 建立使用者連線pdbOracle
- 寬頻連線錯誤678怎麼辦? 寬頻連線錯誤678故障解決辦法
- mysql連線錯誤碼1251MySql
- 網路連線出現意外錯誤
- linux 遠端連線ssh錯誤Linux
- 11gR2 syaasm連線錯誤ASM
- apusic連線weblogic錯誤,請教!!!Web
- oracle grid ora-01017 用 Oracle Grid 連線異地資料庫時報錯Oracle資料庫
- 前端的水平線,錯誤處理和除錯前端除錯
- PLSQL工具匯入Excel資料使用者連線時報錯SQLExcel
- Oracle SQL Developer 連線資料庫總是顯示io錯誤OracleSQLDeveloper資料庫
- 【TUNE_ORACLE】列出走了錯誤的排序合併連線的SQL參考Oracle排序SQL
- Oracle 11gR2 RAC連線報錯ora-12537錯誤Oracle
- [Oracle]startup mount時報ORA-12514錯誤的解決方法Oracle
- oracle呼叫外部程式時報:ora-28575以及ora-28546錯誤Oracle
- VPN連線800錯誤的解決辦法(轉)
- MySQL連線錯誤(10048)的解決方案MySql
- 一次網路連線錯誤的診斷
- 寬頻連線錯誤691解決方法
- 如何解決寬頻連線錯誤769