I am attempting to connect to an MS SQL Server Database from QGIS 2.18 on running on Ubuntu 16.04.

I receive this error when clicking on the "List Databases". The login is a SQL Server login (not an active directory login), so it should be straight forward.

Are there additional packages that have to be installed in order for QGIS to form the connection to SQL Server?

enter image description here

OS Version:

Distributor ID: Ubuntu
Description:    Ubuntu 16.04.3 LTS
Release:    16.04
Codename:   xenial

QGIS Version:

QGIS version
QGIS code revision
Compiled against Qt
Running against Qt
Compiled against GDAL/OGR
Running against GDAL/OGR
Compiled against GEOS
Running against GEOS
3.5.0-CAPI-1.9.0 r4084
PostgreSQL Client Version
SpatiaLite Version
QWT Version
PROJ.4 Version
QScintilla2 Version

SQL Server: 2014
  • Microsoft doesn't make Linux drivers, which is the reason Linux ArcGIS Server nodes can't access SQL Server enterprise geodatabases.
    – Vince
    Nov 5, 2017 at 13:39
  • 1
    @Vince these are Linux drivers from Microsoft, aren't they? docs.microsoft.com/en-us/sql/connect/odbc/linux-mac/… Nov 6, 2017 at 17:08
  • He was probably referring to native drivers. But I would have expected native drivers now that SQL Server can be installed on linux (which I've done). Of course, it could be they exist but aren't backwards compatible w/ SQL Server 2014. Nov 6, 2017 at 17:56
  • Yes, native drivers (which is ironic, since Sybase started on Sun). I stopped paying attention to SQL Server years ago now. Lack of drivers wasn't the only reason; more of a symptom of the general problem of platform hostility.
    – Vince
    Nov 6, 2017 at 23:42
  • I am having the same problem connecting to SQL Server on localhost in QGIS. Did you ever resolve this issue?
    – Cliff
    Dec 15, 2018 at 12:05

1 Answer 1


I'll start with some info, hoping someone else can fill in the gaps.

It seems Microsoft offers an installation solution:


(I couldn't get this to work...)

Or, you need to install the unixODBC drivers.

Here is a place to start:


I've gotten fairly far with this, in that I was able to run a TSQL select on a table in our MSSQL Server database.

The QGIS documentation doesn't acknowledge the need for an additional driver that doesn't come with Linux distros: http://docs.qgis.org/2.8/en/docs/user_manual/working_with_vector/supported_data.html#mssql-spatial-layers

I don't know how to get QGIS to recognize these drivers, however, which is where I hope someone else can fill in the gaps!

  • Have you tried doing it through Add vector layer option? From there you can create an OGR database connection. I haven't got a linux install so I can't test it. There was also a comment on this answer that may be a clue
    – MickyT
    Nov 7, 2017 at 19:47
  • @MickyT I actually found that getspatial.com post - the error is "Can't open lib 'SQL Server' : file not found" - not sure if this method still relies on libraries that don't come by default with QGIS on Linux... thoughts? Nov 7, 2017 at 20:26
  • I think I read somewhere that the ogr plugin has it's own odbc drivers, but can't find it now. I might need to find some tin to try a few things on.
    – MickyT
    Nov 7, 2017 at 23:41
  • Most people coming here would have both of these, multiple versions even. sqlcmd works ogr2ogr works, Python works, but probably not the same venv, Datagrip Works, DBeaver works, Azure Data explorer works, just not QGIS.
    – mckenzm
    May 28, 2023 at 4:59

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.