How do I connect to SQL Azure from NodeJS/Tedious?


I have a SQL Azure database that I'm trying to connect to from a NodeJS application running in an Azure Linux VM. Everything works fine when I'm on a local SQL Database/and local machine for NodeJS. However, when I run from my vm, I get the following output (My trace output plus the Tedious debug event):

connected to
State change: Connecting -> SentPrelogin
State change: SentPrelogin -> SentLogin7WithStandardLogin
connection to closed
State change: SentLogin7WithStandardLogin -> Final
Writing CSV files....
connection to closed
State change: Final -> Final
All Done!

The problem is that no error is ever raised, but the connection seems to be automatically closed.

Any thoughts on what might be happening here or how I can get to an actual error?

Problem courtesy of: Howard Dierking


Ok - solved it thanks to this thread

There were 2 issues:

  1. SQL Azure requires encrypted connections, so you need encrypt:true in the connection options
  2. the userName configuration option requires the database-qualified name (e.g.

Just in case anyone else runs into this :)

Solution courtesy of: Howard Dierking


I encountered a 3rd issue that I thought was worth sharing. Due to some firewall/isp/port/etc issues, I had to set up a local SQL instance to debug with.

The local instance of SQL Server 2014 worked when I used a 'database' parameter under the main tree. However, the Azure instance would only take the 'database' parameter if it is under 'options'.

"sqlserverConfig": {
    "userName": "",
    "password": "SomePW",
    "server": "",
    "options": {
        "encrypt": true,
        "database": "SomeDatabase"

For me, the symptom that I observed was that I was connecting to the master db by default - So my stored procedures weren't found, etc. Very frustrating. Hope this helps someone.

Discussion courtesy of: edhubbell

This recipe can be found in it's original form on Stack Over Flow.