Microsoft Announces SQL Server ODBC Driver for Linux!

In this morning’s keynote address at the Professional Association of SQL Server (PASS) Summit 2011, Quentin Clark (Corporate Vice President at Microsoft) announced that a preview of the Microsoft SQL Server ODBC Driver for Linux will soon be widely available to customers. Yes, you read that right. Microsoft plans to release a driver that provides 1st class access to SQL Server from Linux/Unix operating systems. Recently, Microsoft has been working closely with a handful of partners to get feedback on private releases of the driver. A publicly available preview release of the driver is planned for later this fall.

Prior to the announcement, I had a chance to chat with Shekhar Joshi, Program Manager for the driver. He filled me in on a few more details about the driver:

  • The preview release will be a 64-bit driver for Red Hat Enterprise Linux 5. His team plans to implement support for Red Hat 6 for the RTM release of the driver. Plans to release a 32-bit version of the driver are on the roadmap.
  • The release will include BCP and SQLCMD utilities.
  • Notable driver features (in addition to what you would expect in an ODBC driver) include support for the Kerberos authentication protocol, SSL, and client-side UTF-8 encoding.
  • Features that are not supported in this release include support for Always On Availability Groups (though this is on the roadmap) and mirroring.

Shekhar told me that his team is confident that this is will be a high-quality release, in part due to how the driver is being developed. His team is using the existing, reliable ODBC for Windows driver (a.k.a. SQL Server Native Client, or SNAC) as a starting point. They are carefully modifying the existing code so that it will compile for Linux/Unix operating systems, and testing it rigorously.

What makes me especially excited about this release is that this is a HUGE step toward interoperability. For a while now, I’ve been a supporter and proponent of interoperability here at Microsoft, and I’ve seen lots of progress on this front. This announcement, however, is perhaps the most significant step I’ve seen in my tenure at Microsoft. Add this to yesterday’s announcement of an Apache Hadoop distribution for Windows Server and Windows Azure, and you’ve got some real momentum on the interoperability front.

If you’re at SQL PASS and would like to learn more about the SQL Server ODBC Driver for Linux, be sure to attend the Developing Multi-Platform Applications for Microsoft SQL Server and Azure session (AD-211-M) this afternoon at 5:00 (room 4C4). (Presentations will also be available online later.) There is also a panel discussion with the SQL Connectivity Leadership team (SQL Connectivity Leadership Unplugged (AD-101-M)) on Friday at 2:30 (room 612) that should be interesting.



Share this on Twitter

Comments (13)

  1. Khuram Makik says:

    On the subject of interoperability , are we likely to see support for Node.js especially since microsoft is now supporting it? Or is this a moot point since ODBC support itself will be enough?

  2. David Finch says:

    What license(s) will it be under?

  3. @David-

    The driver won't be Open Source. It will be available as a binary only. The license will be similar to the lisence that our JDBC is under (which is you can see here:…/details.aspx). I'll have to get back to you about what the differences might be.


  4. Daniil Churikov says:

    Never thought that i will say so, but MS moves to right direction

  5. Daniil Churikov says:

    Btw, where can we watch the progress and subscribe for evens related to this driver?

  6. Dave says:

    "Notable driver features (in addition to what you would expect in an ODBC driver) include support for the Kerberos authentication protocol, SSL, and client-side UTF-8 encoding."

    In this context, by "Kerberos authentication protocol," do you mean that it will be possible to connect to a SQL Server instance in Windows authentication mode using this new driver on Linux?  That would be great.


  7. @Dave-

    Yes, that is what it means.


  8. AndyR says:

    Has anyone tested this with named instances? Using unix sqlcmd to test the connection for example running

    sqlcmd -S my_server -d my_dbl -U user -P pass -r

    works fine, however if you introduce a named instance e.g.

    sqlcmd -S my_serverMY_INSTANCE -d my_dbl -U user -P pass -r

    the  connection fails. Although the unix docs suggest only a single backslash is required ive tried escaping my_server\MY_INTSANCE with no luck !?

  9. Unfortunately, the Instance name is not supported with the Linux ODBC implementation.  You'll need to specify a TCP port for the instance using the SQL Server Configuration Manager. Here are some details (…/ms177440.aspx )

    I'll be filing a documentation bug to correct this.

  10. Rich says:

    Where is the 32-bit version?

  11. Mitch Miller says:

    Did Microsoft ever release a 32 bit driver?  Looking for a RHEL5/32 bit solution.