Oracle

如何使用第 3 方 IDE (DataGrip) 連接到 Oracle 自治數據倉庫?

  • April 27, 2021

我正在嘗試使用 Jetbrains DataGrip 連接到 Oracle 自治數據倉庫數據庫。Oracle 為我提供了一個錢封包件(一個 zip),其中包含 tnsnames.ora、一個密鑰庫、ojdbc.properties 和一些其他文件。

我在使用此資訊使用 DataGrip 連接到數據庫時遇到了很多麻煩。我在 DataGrip 支持論壇上找到了一個文章,但我也沒有運氣。

Jetbrains 支持執行緒:https
://intellij-support.jetbrains.com/hc/en-us/community/posts/360001792539-Connect-with-Oracle-Cloud 相關 Oracle 文件:https ://docs.oracle.com/en /cloud/paas/autonomous-data-warehouse-cloud/adwud/connect-using-client-application.html

我做了什麼:

  1. 創建“TNS_ADMIN”環境變數並將其設置為:

C:\\Users\\xxx\\Documents\\[folder with wallet files]

  1. 將 Oracle JDBC 驅動程序文件(ojdbc8.jar、osdt_cert.jar、oraclepki.jar、osdt_core.jar)添加到 DataGrip 中的標準 Oracle 驅動程序

  2. 編輯 ‘sqlnet.ora’ 文件以包含錢封包件的路徑

  3. 在數據源 VM 選項中添加以下內容:

-Doracle.net.tns_admin=C:\\Users\\xxx\\Documents\\[folder with wallet files]
-Djavax.net.ssl.trustStore=truststore.jks
-Djavax.net.ssl.trustStorePassword=[password]
-Djavax.net.ssl.keyStore=keystore.jks    
-Djavax.net.ssl.keyStorePassword=[password]
-Doracle.net.ssl_server_dn_match=true    
-Doracle.net.ssl_version=1.2
  1. 將連接類型設置為僅 URL
  2. 在 URL 欄位中嘗試了不同的連接字元串:

jdbc:oracle:thin:@//adb.eu-frankfurt-1.oraclecloud.com:1522/xxxxxx_adw1_high.adwc.oraclecloud.com?TNS_ADMIN=C:\\Users\\xxx\\Documents\\[folder with wallet files]

jdbc:oracle:thin:@xxxxxx_adw1_high.adwc.oraclecloud.com?TNS_ADMIN=C:\\Users\\xxx\\Documents\\[folder with wallet files]

jdbc:oracle:thin:@//adb.eu-frankfurt-1.oraclecloud.com:1522/mnr6yzqr22jgywm_adw1_high.adwc.oraclecloud.com

結果:

Connection to ADW1 failed.  
[08006][17002] IO Error: Got minus one from a read call, connect lapse 32 ms.,  
Authentication lapse 0 ms.  

我還嘗試使用“服務名稱”和“TNS”連接類型並填寫來自 tnsnames.ora 的資訊。沒有骰子,同樣的錯誤。

還嘗試將 ’tcp.validnode_checking’ 參數顯式設置為 null。

(連接工作正常與 sqldeveloper)

這樣做的正確方法是什麼?

DataGrip 2021.1 為 Oracle 21.1 JDBC 驅動程序提供所有必需的 jar 文件。

閱讀有關使用錢包的 Oracle 連接的DataGrip 幫助。

還有一些額外的Oracle參考資料。

引用自:https://dba.stackexchange.com/questions/258194