2016-06-02 3 views
1

Новое к clojure. Попытка подключения к базе данных оракула и получаю сообщение об ошибкеНет соответствующего протокола аутентификации с clojure jdbc

SQLException ORA-28040: No matching authentication protocol 
    oracle.jdbc.driver.DatabaseError.throwSqlException (DatabaseError.java:112) 

Я что-то не так с зависимостями подозревавший, но я слишком новый, чтобы выяснить

Вот мой файл project.clj

(defproject my_project "0.1.0-SNAPSHOT" 
    :dependencies [[org.clojure/clojure "1.6.0"] 
       [org.clojure/java.jdbc "0.6.1"]  
       [com.oracle.jdbc/com.springsource.oracle.jdbc "10.2.0.2"] 
       [com.oracle.xdb/com.springsource.oracle.xdb "10.2.0.2"]]) 

И вот код. Я пытаюсь выполнить функцию f2 в РЕПЛЕ и что, когда я получаю ошибку

;; defines the parameters for connecting to the database 
(def db-info {:hostname "dont.want.to.tell.com" 
       :port 1521 
       :database "db" 
       :user "someuser" 
       :password "somepassword"}) 

;; creates connection string from the db-info map 
(defn get-connection-string [db-info] 
    (str "thin:@" (:hostname db-info) ":" (:port db-info) ":" (:database db-info))) 


;;defines the db map that would be used for queries 
(def db {:classname "oracle.jdbc.OracleDriver" 
      :subprotocol "oracle" 
      :subname (get-connection-string db-info) 
      :user (:user db-info) 
      :password (:password db-info)}) 

(defn f2 [] 
    (jdbc/query db ["select * from secret_table where rownum < 2"] {:row-fn :cost})) 
+0

Что Oracle версии драйвера вы используете? Взгляните на аналогичные проблемы на SO, например. http://stackoverflow.com/a/26604277/597473 –

ответ

1

This ошибки происходит, когда Oracle сконфигурирован для ограничения версии клиента доступа через параметр SQLNET.ORA SQLNET.ALLOWED_LOGON_VERSION_CLIENT. Это ограничение обычно применяется во избежание небезопасных криптографических функций, используемых более ранними версиями клиента Oracle.

Изменение зависимостей решается вопрос:

(defproject my_project "0.1.0-SNAPSHOT" 
    :dependencies [[org.clojure/clojure "1.6.0"] 
       [org.clojure/java.jdbc "0.6.1"]  
        [com.oracle/ojdbc6 "11.2.0.4"]     
       ]) 
+0

спасибо за изменения @Jon – SK176H

Смежные вопросы