Estou tentando conectar meu projeto grails ao banco de dados Oracle ( Oracle 12c ) no sistema windows (8). No entanto, sempre que executo meu aplicativo, recebo a seguinte exceção:
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
De acordo com sugestão da internet também tentei editar meu *.ora
arquivo, mas não está funcionando.
Eu adicionei o seguinte snippet no sqlnet.ora
arquivo:
SQLNET.ALLOWED_LOGON_VERSION=10
SQLNET.ALLOWED_LOGON_VERSION_CLIENT=10
SQLNET.ALLOWED_LOGON_VERSION_SERVER=10
Aqui eu tentei atribuir (10,11,12), mas nenhum deles está funcionando.
Alguém por favor pode me ajudar com isso ?
Respostas:
Excluí o arquivo ojdbc14.jar e usei ojdbc6.jar e funcionou para mim
fonte
oracle.jdbc.thinLogonCapability"="o3"
que você não precisa mais fazer no oracle 12c. Espero que possa ajudar alguémAqui está um texto que encontrei em experts-exchange :
fonte
Exceto para adicionar o seguinte ao sqlnet.ora
Se você receber o erro "ORA-01017: nome de usuário / senha inválidos; logon negado", será necessário recriar sua senha.
fonte
Resolvi esse problema usando ojdbc8.jar. Oracle 12c é compatível com ojdbc8.jar
fonte
Exceto para adicionar o seguinte a sqlnet.ora
Também adicionei o seguinte ao cliente e ao servidor, o que resolveu meu problema
Consulte também a postagem ORA-28040: Nenhum protocolo de autenticação correspondente
fonte
Eu estava usando o eclipse e depois de tentar todas as outras respostas, não funcionou para mim. No final, o que funcionou para mim foi mover
ojdb7.jar
para o topo no Build Path. Isso ocorre quando vários jars têm as mesmas classes conflitantes.fonte
Adicionando
é a solução perfeita para o diretório sql.ora .. \ product \ 12.1.0 \ dbhome_1 \ NETWORK \ ADMIN
fonte
Meu erro inicial é: ORA-28040: Nenhuma exceção de protocolo de autenticação correspondente
Minha versão do banco de dados é 12.2 (Solaris) e a versão do cliente é 11.2 (windows). Eu adicionei abaixo no servidor e no cliente sqlnet.ora
SQLNET.ALLOWED_LOGON_VERSION_CLIENT = 8 SQLNET.ALLOWED_LOGON_VERSION_SERVER = 8
durante a conexão, obtive nome de usuário e senha inválidos, portanto, recriei a senha (mesma senha) no banco de dados, o que resolveu meu problema.
fonte
Embora, na maioria dos casos, substituir o jar do driver ojdbc seja a solução, meu caso era diferente.
Se você tiver certeza de que está usando o driver ojdbc correto. Verifique novamente se você está realmente se conectando ao banco de dados que pensa estar. No meu caso, a configuração jdbc (em Tomcat / conf) estava apontando para um banco de dados diferente que tinha uma versão Oracle diferente.
fonte
Pergunta muito antiga, mas fornecendo algumas informações adicionais que podem ajudar outra pessoa. Também encontrei o mesmo erro e estava usando ojdbc14.jar com o banco de dados Oracle 12.1.0.2. Na página web oficial da Oracle, esta informação está listada com qual versão suporta quais drivers de banco de dados. Aqui está o link e parece que com Oracle 12c e Java 7 ou 8, a versão correta é ojdbc7.jar.
No ojdbc6.jar é para 11.2.0.4.
fonte
basta instalar ojdbc-full, que contém a versão 12.1.0.1.
fonte