繁体   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