簡體   English   中英

如何使用DBEaver通過VM跳轉主機連接到Azure SQL數據庫?

[英]How to connect to Azure SQL Database through a VM jump host using DBEaver?

我擁有的:

  • Azure SQL 私有 virtual.network 上的數據庫
  • 跳轉主機 - 白名單 Azure VM 可以連接到 Azure SQL 數據庫

本地機器--PuTTY--> 跳轉主機--sqlcmd--> Azure SQL DB

我想做的事情:平時PuTTY到VM里面,用sqlcmd操作,但是查詢數據多的時候GUI很難看。 所以我想在我的本地機器上使用 DBEaver 來訪問 Azure SQL 數據庫。

使用的配置:

  • 在 Connection setting -> Main: Azure SQL Database (與sqlcmd中通常使用的服務器主機、端口、數據庫、用戶名和密碼相同)
  • 在連接設置->SSH:跳轉主機
  • 在連接設置 -> 主要 -> 編輯驅動程序設置 -> 庫中:jdbc 9.4.1.jre8 和 jdbc_auth 9.4.1.x64

我面臨的問題:我嘗試使用 ssh 隧道配置進行連接。 圖 1中,當我單擊“測試隧道配置”時,它可以成功連接到列入白名單的 VM。

a) 在圖 2主配置中,我嘗試在主機中使用主機名並單擊“測試連接”。 它失敗並顯示錯誤消息

無法打開登錄請求的服務器“127.0.0.1”。 登錄失敗。

b) 在圖 2主配置中,我將主機名更改為服務器 IP(在跳轉主機中使用ping <hostname> )並重試。 它失敗並顯示錯誤消息

無法打開登錄請求的服務器“127.0.0.1”。 登錄失敗。

c) 在圖 2主配置中,我嘗試在主機中使用隨機 IP 地址並單擊“測試連接”。 它失敗並顯示錯誤消息

與主機 127.0.0.1、端口 45851 的 TCP/IP 連接失敗。 錯誤:“驅動程序收到意外的登錄前響應。驗證連接屬性並檢查 SQL Server 的實例是否正在主機上運行並在端口上接受 TCP/IP 連接。此驅動程序只能與 SQL Server 2005 一起使用或以后。”。

我錯過了什么?

dbeaver ssh 隧道配置dbeaver 主要配置

我們有同樣的問題。 Azure SQL 數據庫需要知道與您的用戶名關聯的實例名稱。 由於您在 127.0.0.1 上使用 ssh 隧道,因此 Azure 無法知道實例的名稱。 您需要將數據庫名稱添加到您的 sql 登錄名(不是用於跳轉箱的那個,而是用於連接到數據庫的那個):

username@database_name.database.windows.net

代替

username

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM