nih*_*il0 7 ssh sqlcmd azure ssh-tunnel azure-sql-database
我需要通过跳转盒(Azure VM)从本地计算机连接到 Azure SQL DB。我使用以下命令设置端口转发:
ssh -fN -L 41433:my-db.database.windows.net:1433 me@jump-box
Run Code Online (Sandbox Code Playgroud)
我可以确认隧道已设置,因为在详细模式下我看到了消息
Local connections to LOCALHOST:41433 forwarded to remote address my-db.database.windows.net:1433
Run Code Online (Sandbox Code Playgroud)
现在,当我跑
sqlcmd -S 127.0.0.1,41433 -U username -P password -d db
Run Code Online (Sandbox Code Playgroud)
我收到以下错误消息
Sqlcmd: Error: Microsoft ODBC Driver 13 for SQL Server : [Microsoft][ODBC Driver 13 for SQL Server]
[SQL Server]Cannot open server "127.0.0.1" requested by the login. The login failed..
Run Code Online (Sandbox Code Playgroud)
我已经确保/etc/ssh/sshd_config有线条GatewayPorts yes和AllowTcpForwarding yes
有人可以帮我弄清楚我做错了什么吗?
Azure SQL 数据库需要知道您的用户名用于哪个数据库实例。这通常使用服务器名称完成。如果将 127.0.0.1 指定为服务器名称,Azure 将无法知道您的实例。
最好的方法是在登录名中指定实例,例如 username@my-db.database.windows.net。
sqlcmd -S 127.0.0.1,41433 -U username@yourdb.database.windows.net -P password -d db
Run Code Online (Sandbox Code Playgroud)
这样就不需要修改主机文件,并且可以使用相同的隧道同时连接到多个 Azure SQL 数据库实例。我希望这有助于您安全地连接到 Azure SQL 数据库。
| 归档时间: |
|
| 查看次数: |
3476 次 |
| 最近记录: |