ORA-28040:没有匹配的authentication协议例外
我正在尝试将我的grails项目连接到Windows(8)系统中的Oracle数据库( Oracle 12c )。 但是,每当我运行我的应用程序,我得到以下exception:
Caused by: org.apache.commons.dbcp.SQLNestedException: Cannot create PoolableConnectionFactory (ORA-28040: No matching authentication protocol
)
Caused by: java.sql.SQLException: ORA-28040: No matching authentication protocol
根据互联网的build议,我也尝试编辑我* .ora文件,但它不工作。
我在sqlnet.ora文件中添加了以下代码片段:
SQLNET.ALLOWED_LOGON_VERSION=10 SQLNET.ALLOWED_LOGON_VERSION_CLIENT=10 SQLNET.ALLOWED_LOGON_VERSION_SERVER=10
在这里,我试图分配(10,11,12),但他们都没有工作。
任何人都可以帮我这个吗?
我删除了ojdbc14.jar文件,而是使用ojdbc6.jar ,它为我工作
编辑
从@JamesTobin:更改为ojdbc6.jar
或ojdbc7.jar
仍然失败,因为我一直在不断设置: oracle.jdbc.thinLogonCapability"="o3"
,你不再需要对付oracle 12c
这里是我在专家交stream中find的一些文字:
错误14575666
在12.1中,SQLNET.ALLOWED_LOGON_VERSION参数的默认值已更新为11.这意味着使用11g之前的JDBC瘦驱动程序的数据库客户端无法向12.1数据库服务器进行身份validation,除非SQLNET.ALLOWED_LOGON_VERSION参数设置为旧的默认值8。
这将导致使用DBCA创build的10.2.0.5 Oracle RAC数据库与ORA-28040一起失败:在12.1 Oracle ASM和Oracle Grid Infrastructure环境中没有匹配的身份validation协议错误。
解决方法:在oracle / network / admin / sqlnet.ora文件中设置SQLNET.ALLOWED_LOGON_VERSION = 8。
除了将以下内容添加到sqlnet.ora
SQLNET.ALLOWED_LOGON_VERSION_CLIENT = 8 SQLNET.ALLOWED_LOGON_VERSION_SERVER = 8
我还将以下内容添加到客户端和服务器,这解决了我的问题
SQLNET.AUTHENTICATION_SERVICES = (NONE)
另请参阅后ORA-28040:没有匹配的身份validation协议
添加
SQLNET.ALLOWED_LOGON_VERSION_SERVER = 8
是完美的解决schemesql.ora目录.. \ product \ 12.1.0 \ dbhome_1 \ NETWORK \ ADMIN
- 在grails应用程序中使用sitemesh是否有很好的教程?
- hibernateGrails应用程序中的第二级caching
- GSP / Grails中的问号是什么意思?
- 如何为Grails应用程序configuration会话超时?
- 在Grails中findAll,getAll和list之间的区别
- Grails无法安装插件
- Grails vs Roo – 为什么SpringSource推出了两个非常相似的技术?
- 如何在Grails 2.0中访问Grailsconfiguration?
- 为什么我在Grails中使用HibernateCriteriaBuilder的时候得到一个“空值赋给原始typessetter的属性”错误信息