我想从我的本地计算机(其IP地址为 ip2 并且主机名为 abc .database.windows.net”)连接到远程AzureDB服务器。的IP地址为 ip1 )。但是,我的本地主机无法直接访问数据库服务器,因此我不得不通过跳转服务器(具有 ip3 并能够访问AzureDB服务器)使用SSH隧道进行连接。这是我在做什么:
1,创建SSH隧道:
ssh -v -g -N -C -L local-port:**ip2**:1433 ssh-user@**ip3** -p 22
2,连接到数据库服务器
sqlcmd -S 127.0.0.1,local-port -U db-user@**abc**.database.windows.net -P password -d db-name
但是我得到了错误:
无法打开登录名请求的服务器“ abc ”。 IP客户端 地址“ ip1 ”不允许访问服务器。启用 访问,使用Windows Azure管理门户或运行 在master数据库上使用sp_set_firewall_rule创建防火墙规则 该IP地址或地址范围。最多可能需要五分钟 才能使更改生效。
我检查了与telnet的隧道连接,未显示任何错误。谁能告诉我我的工作出了什么问题?
答案 0 :(得分:0)
如果我们要访问远程Azure SQL数据库,请确保已将本地IP' ip1 '添加到Portal上的Azure SQL Server firewall:
请尝试以下命令:
ssh -L local_port:abc.database.windows.net:1433 db-user@abc.database.windows.net
sqlcmd -S 127.0.0.1,local-port -U db-user@**abc**.database.windows.net -P password -d db-name
也请参考此博客:
希望这会有所帮助。