Saya mencoba menghubungkan proyek grails saya ke Oracle databse ( Oracle 12c ) di sistem windows (8). Namun, setiap kali saya menjalankan aplikasi saya, saya mendapatkan pengecualian berikut:
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
Menurut saran internet, saya juga mencoba mengedit *.ora
file saya tetapi tidak berhasil.
Saya menambahkan potongan berikut dalam sqlnet.ora
file:
SQLNET.ALLOWED_LOGON_VERSION=10
SQLNET.ALLOWED_LOGON_VERSION_CLIENT=10
SQLNET.ALLOWED_LOGON_VERSION_SERVER=10
Di sini saya mencoba menetapkan (10,11,12) tetapi tidak satupun dari mereka berfungsi.
Adakah yang bisa membantu saya dengan ini?
Jawaban:
Saya menghapus file ojdbc14.jar dan menggunakan ojdbc6.jar sebagai gantinya dan itu berhasil untuk saya
sumber
oracle.jdbc.thinLogonCapability"="o3"
yang tidak lagi harus Anda lakukan terhadap oracle 12c. Semoga dapat membantu orang lainBerikut beberapa teks yang saya temukan di pertukaran ahli :
sumber
Saya menyelesaikan masalah ini dengan menggunakan ojdbc8.jar. Oracle 12c kompatibel dengan ojdbc8.jar
sumber
Ini kecuali untuk menambahkan berikut ini ke sqlnet.ora
Jika Anda mendapatkan kesalahan "ORA-01017: username / password tidak valid; logon ditolak", maka Anda perlu membuat ulang password Anda.
sumber
Kecuali untuk menambahkan berikut ini ke sqlnet.ora
Saya juga menambahkan yang berikut ini ke Klien dan Server, yang menyelesaikan masalah saya
Lihat juga posting ORA-28040: Tidak ada protokol otentikasi yang cocok
sumber
Saya menggunakan eclipse dan setelah mencoba semua jawaban lainnya, itu tidak berhasil untuk saya. Pada akhirnya, yang berhasil bagi saya adalah pindah
ojdb7.jar
ke puncak di Build Path. Ini terjadi ketika beberapa toples memiliki kelas yang sama berkonflik.sumber
Menambahkan
adalah solusi sempurna direktori sql.ora .. \ product \ 12.1.0 \ dbhome_1 \ NETWORK \ ADMIN
sumber
Pertanyaan yang sangat lama tetapi memberikan beberapa informasi tambahan yang dapat membantu orang lain. Saya juga mengalami kesalahan yang sama dan saya menggunakan ojdbc14.jar dengan 12.1.0.2 Oracle Database. Pada halaman web resmi Oracle, informasi ini terdaftar versi mana yang mendukung driver database mana. Berikut ini tautannya dan tampaknya dengan Oracle 12c dan Java 7 atau 8 versi yang benar adalah ojdbc7.jar.
Dalam ojdbc6.jar adalah untuk 11.2.0.4.
sumber
Kesalahan awal saya adalah: ORA-28040: Tidak ada pengecualian protokol otentikasi yang cocok
Versi DB saya adalah 12.2 (Solaris) dan versi klien adalah 11.2 (windows). Saya telah menambahkan di bawah ini di server dan klien sqlnet.ora
SQLNET.ALLOWED_LOGON_VERSION_CLIENT = 8 SQLNET.ALLOWED_LOGON_VERSION_SERVER = 8
saat menghubungkan, saya mendapatkan nama pengguna dan kata sandi yang tidak valid sehingga saya telah membuat ulang kata sandi (kata sandi yang sama) dalam database yang menyelesaikan masalah saya.
sumber
Sementara untuk kebanyakan kasus mengganti jar driver ojdbc akan menjadi solusinya, kasus saya berbeda.
Jika Anda yakin Anda menggunakan driver ojdbc yang benar. Periksa kembali apakah Anda benar-benar terhubung ke database yang Anda pikirkan. Dalam kasus saya konfigurasi jdbc (di Tomcat / conf) menunjuk ke database yang berbeda yang memiliki versi Oracle yang berbeda.
sumber
cukup instal ojdbc-full, yang berisi rilis 12.1.0.1.
sumber