Unable to reach SQL database through SSH tunnel using sqlcmd Unable to reach SQL database through SSH tunnel using sqlcmd azure azure

Unable to reach SQL database through SSH tunnel using sqlcmd


Azure SQL Database needs to know what database instance your username is for. This is normally done with the server name. If you specify 127.0.0.1 as your server name, Azure cannot know your instance.

The best way is to specify the instance in the login name, e.g. username@my-db.database.windows.net.

sqlcmd -S 127.0.0.1,41433 -U username@yourdb.database.windows.net -P password -d db 

This way you do not need to modify your hosts-file and you can have connections to multiple Azure SQL Database instances simultaneously with same tunneling. I hope this helps you connecting securely to Azure SQL Database.


Azure matches on server name sent during login process. Hence your error "Cannot open server "127.0.0.1" requested by the login.".

To work around this try adding the Azure hostname with 127.0.0.1 IP to HOSTS file, and then supply the same hostname to sqlcmd, so that the driver resolves the hostname to and connects to the tunnel entrance, and then sends the same hostname as if it wasn't using a tunnel.