【发布时间】:2020-11-19 05:59:02
【问题描述】:
在使用 oracle 10g 连接 Oracle 18c 时出现类似错误 “ORA-28040:没有匹配的身份验证协议异常”。 我可以连接“SQL DEVELOPER”但无法连接“命令提示符”
【问题讨论】:
标签: oracle oracle10g database-administration oracle18c
在使用 oracle 10g 连接 Oracle 18c 时出现类似错误 “ORA-28040:没有匹配的身份验证协议异常”。 我可以连接“SQL DEVELOPER”但无法连接“命令提示符”
【问题讨论】:
标签: oracle oracle10g database-administration oracle18c
不可能,见Client / Server Interoperability Support Matrix for Different Oracle Versions (Doc ID 207303.1)
即使您设置了SQLNET.ALLOWED_LOGON_VERSION_...,连接也很可能会因另一个错误而失败。
【讨论】:
甲骨文documentation 说:
从早于版本 10g 的客户端连接到 Oracle 数据库失败,并出现错误 ORA-28040:没有匹配的身份验证协议。
从 Oracle Database 18c 开始,
SQLNET.ALLOWED_LOGON_VERSION参数的默认值从 Oracle Database 12c (12.2) 中的 11 更改为 Oracle Database 18c 中的 12。不推荐使用此参数。
SQLNET.ALLOWED_LOGON_VERSION现在替换为SQLNET.ALLOWED_LOGON_VERSION_SERVER和SQLNET.ALLOWED_LOGON_VERSION_CLIENT参数。如果您没有在升级后的数据库中显式设置SQLNET.ALLOWED_LOGON_VERSION_SERVER参数,则来自 10g 之前版本的客户端的连接将失败,并出现错误 ORA-28040: No matching authentication protocol。
看看有没有帮助。
【讨论】:
在 18c 中,默认的最低版本已从 11 更改为 12,SQLNET.ALLOWED_LOGON_VERSION 已弃用并替换为 SQLNET.ALLOWED_LOGON_VERSION_SERVER 和 SQLNET.ALLOWED_LOGON_VERSION_CLIENT
设置
SQLNET.ALLOWED_LOGON_VERSION_SERVER=10
SQLNET.ALLOWED_LOGON_VERSION_CLIENT=10
在您的 sqlnet.ora 中并重新加载侦听器 lsnrctl reload
【讨论】: