|
| 1 | +--- |
| 2 | +title: "Driver feature support matrix" |
| 3 | +description: "Learn which popular features are supported in drivers for SQL Server and where to find information about them." |
| 4 | +ms.custom: "" |
| 5 | +ms.date: 04/21/2020 |
| 6 | +ms.prod: sql |
| 7 | +ms.technology: connectivity |
| 8 | +ms.topic: conceptual |
| 9 | +author: David-Engel |
| 10 | +ms.author: v-daenge |
| 11 | +ms.reviewer: v-daenge |
| 12 | +--- |
| 13 | +# Driver feature support matrix for Microsoft SQL Server |
| 14 | + |
| 15 | +If you're planning to use a feature in Microsoft SQL Server, it might not be available in all drivers. Some reasons a feature might not be in a particular driver include: |
| 16 | + |
| 17 | +- The feature doesn't apply to the driver technology. |
| 18 | +- The feature is new and hasn't been implemented across all drivers yet. |
| 19 | +- The feature isn't in demand in a particular driver. |
| 20 | +- Other features are being implemented first. |
| 21 | + |
| 22 | +We wish all drivers supported every feature and spend effort to ensure feature parity across drivers. However that isn't always possible. To help you choose the appropriate driver for your needs, here's a list of popular features and the drivers that implement them. |
| 23 | + |
| 24 | +- [.NET](#table1) |
| 25 | +- [ODBC](#table2) |
| 26 | +- [OLE DB](#table2) |
| 27 | +- [JDBC](#table2) |
| 28 | +- [PHP](#table3) |
| 29 | +- [Node.js / JavaScript](#table3) |
| 30 | +- [Python](#table3) |
| 31 | + |
| 32 | +| <a id="table1"></a>Feature | [Microsoft.<wbr>Data.<wbr>SqlClient (.NET Core)](ado-net/microsoft-ado-net-sql-server.md) | [Microsoft.<wbr>Data.<wbr>SqlClient (.NET Framework)](ado-net/microsoft-ado-net-sql-server.md) | System.<wbr>Data.<wbr>SqlClient (.NET Core) | [System.<wbr>Data.<wbr>SqlClient (.NET Framework)](/dotnet/framework/data/adonet/sql/) | |
| 33 | +| :-- | :-- | :-- | :-- | :-- | |
| 34 | +| [Always Encrypted](../relational-databases/security/encryption/always-encrypted-database-engine.md) | [Yes](ado-net/sql/sqlclient-support-always-encrypted.md) | [Yes](ado-net/sql/sqlclient-support-always-encrypted.md) | | [Yes](ado-net/sql/sqlclient-support-always-encrypted.md) | |
| 35 | +| [Always Encrypted with secure enclaves](../relational-databases/security/encryption/always-encrypted-enclaves.md) | [Yes](ado-net/sql/sqlclient-support-always-encrypted.md#enabling-always-encrypted-with-secure-enclaves) | [Yes](ado-net/sql/sqlclient-support-always-encrypted.md#enabling-always-encrypted-with-secure-enclaves) | | [Yes](ado-net/sql/sqlclient-support-always-encrypted.md#enabling-always-encrypted-with-secure-enclaves) | |
| 36 | +| [Azure Active Directory Access Token authentication](/azure/active-directory/develop/access-tokens) | [Yes](/dotnet/api/system.data.sqlclient.sqlconnection.accesstoken) | [Yes](/dotnet/api/microsoft.data.sqlclient.sqlconnection.accesstoken) | [Yes](/dotnet/api/microsoft.data.sqlclient.sqlconnection.accesstoken) | [Yes](/dotnet/api/microsoft.data.sqlclient.sqlconnection.accesstoken) | |
| 37 | +| [Azure Active Directory Password authentication](/azure/sql-database/sql-database-aad-authentication) | Yes | Yes | | Yes | |
| 38 | +| [Azure Active Directory Integrated authentication](/azure/sql-database/sql-database-aad-authentication) | | Yes | | Yes | |
| 39 | +| [Azure Active Directory Interactive (MFA) authentication](/azure/sql-database/sql-database-aad-authentication) | | Yes | | Yes | |
| 40 | +| [Azure Active Directory Managed Identity authentication](/azure/active-directory/managed-identities-azure-resources/overview) | | | | | |
| 41 | +| [Windows-Integrated authentication](/windows-server/security/windows-authentication/windows-authentication-overview) | [Yes](ado-net/sql/authentication-sql-server.md) | [Yes](ado-net/sql/authentication-sql-server.md) | [Yes](/dotnet/framework/data/adonet/sql/authentication-in-sql-server) | [Yes](/dotnet/framework/data/adonet/sql/authentication-in-sql-server) | |
| 42 | +| [Bulk Copy](../relational-databases/import-export/bulk-import-and-export-of-data-sql-server.md) | [Yes](ado-net/sql/bulk-copy-operations-sql-server.md) | [Yes](ado-net/sql/bulk-copy-operations-sql-server.md) | [Yes](/dotnet/framework/data/adonet/sql/bulk-copy-operations-in-sql-server) | [Yes](/dotnet/framework/data/adonet/sql/bulk-copy-operations-in-sql-server) | |
| 43 | +| [Data Sensitivity and Classification metadata](../relational-databases/security/sql-data-discovery-and-classification.md) | Yes | Yes | Yes | Yes | |
| 44 | +| [Multiple Active Result Sets (MARS)](../relational-databases/native-client/features/using-multiple-active-result-sets-mars.md) | [Yes](ado-net/sql/multiple-active-result-sets-mars.md) | [Yes](ado-net/sql/multiple-active-result-sets-mars.md) | [Yes](/dotnet/framework/data/adonet/sql/multiple-active-result-sets-mars) | [Yes](/dotnet/framework/data/adonet/sql/multiple-active-result-sets-mars) | |
| 45 | +| [Spatial Data Types](../relational-databases/spatial/spatial-data-sql-server.md) | | Yes | | Yes | |
| 46 | +| [Table-Valued Parameters (TVP)](../relational-databases/tables/use-table-valued-parameters-database-engine.md) | [Yes](ado-net/sql/table-valued-parameters.md) | [Yes](ado-net/sql/table-valued-parameters.md) | [Yes](/dotnet/framework/data/adonet/sql/table-valued-parameters) | [Yes](/dotnet/framework/data/adonet/sql/table-valued-parameters) | |
| 47 | +| [MultiSubnetFailover](../relational-databases/native-client/features/sql-server-native-client-support-for-high-availability-disaster-recovery.md#connecting-with-multisubnetfailover) | [Yes](ado-net/sql/sqlclient-support-high-availability-disaster-recovery.md#connecting-with-multisubnetfailover) | [Yes](ado-net/sql/sqlclient-support-high-availability-disaster-recovery.md#connecting-with-multisubnetfailover) | [Yes](/dotnet/api/system.data.sqlclient.sqlconnectionstringbuilder.multisubnetfailover?view=netcore-1.0) | [Yes](/dotnet/api/system.data.sqlclient.sqlconnectionstringbuilder.multisubnetfailover?view=netframework-4.8) | |
| 48 | +| [Transparent Network IP Resolution](odbc/using-transparent-network-ip-resolution.md) | | [Yes](/dotnet/api/microsoft.data.sqlclient.sqlconnection.connectionstring?view=sqlclient-dotnet-1.1) | | [Yes](/dotnet/api/system.data.sqlclient.sqlconnection.connectionstring?view=netframework-4.8) | |
| 49 | +| | | | | | |
| 50 | + |
| 51 | +| <a id="table2"></a>Feature | [ODBC Driver for SQL Server on Windows](odbc/microsoft-odbc-driver-for-sql-server.md) | [ODBC Driver for SQL Server on Linux](odbc/microsoft-odbc-driver-for-sql-server.md) | [JDBC Driver for SQL Server](jdbc/microsoft-jdbc-driver-for-sql-server.md) | [OLE DB Driver for SQL Server](oledb/oledb-driver-for-sql-server.md) | |
| 52 | +| :-- | :-- | :-- | :-- | :-- | |
| 53 | +| [Always Encrypted](../relational-databases/security/encryption/always-encrypted-database-engine.md) | [Yes](odbc/using-always-encrypted-with-the-odbc-driver.md) | [Yes](odbc/using-always-encrypted-with-the-odbc-driver.md) | [Yes](jdbc/using-always-encrypted-with-the-jdbc-driver.md) | |
| 54 | +| [Always Encrypted with secure enclaves](../relational-databases/security/encryption/always-encrypted-enclaves.md) | [Yes](odbc/using-always-encrypted-with-the-odbc-driver.md#enabling-always-encrypted-with-secure-enclaves) | [Yes](odbc/using-always-encrypted-with-the-odbc-driver.md#enabling-always-encrypted-with-secure-enclaves) | [Yes](jdbc/using-always-encrypted-with-the-jdbc-driver.md) | | |
| 55 | +| [Azure Active Directory Access Token authentication](/azure/active-directory/develop/access-tokens) | [Yes](odbc/using-azure-active-directory.md#authenticating-with-an-access-token) | [Yes](odbc/using-azure-active-directory.md#authenticating-with-an-access-token) | [Yes](jdbc/connecting-using-azure-active-directory-authentication.md#connecting-using-access-token) | [Yes](oledb/features/using-azure-active-directory.md) | |
| 56 | +| [Azure Active Directory Password authentication](/azure/sql-database/sql-database-aad-authentication) | [Yes](odbc/using-azure-active-directory.md) | [Yes](odbc/using-azure-active-directory.md)<sup>[1](#note1)</sup> | [Yes](jdbc/connecting-using-azure-active-directory-authentication.md) | [Yes](oledb/features/using-azure-active-directory.md) | |
| 57 | +| [Azure Active Directory Integrated authentication](/azure/sql-database/sql-database-aad-authentication) | [Yes](odbc/using-azure-active-directory.md) | | [Yes](jdbc/connecting-using-azure-active-directory-authentication.md) | [Yes](oledb/features/using-azure-active-directory.md) | |
| 58 | +| [Azure Active Directory Interactive (MFA) authentication](/azure/sql-database/sql-database-aad-authentication) | [Yes](odbc/using-azure-active-directory.md) | | | [Yes](oledb/features/using-azure-active-directory.md) | |
| 59 | +| [Azure Active Directory Managed Identity authentication](/azure/active-directory/managed-identities-azure-resources/overview) | [Yes](odbc/using-azure-active-directory.md) | [Yes](odbc/using-azure-active-directory.md) | [Yes](jdbc/connecting-using-azure-active-directory-authentication.md) | [Yes](oledb/features/using-azure-active-directory.md) | |
| 60 | +| [Windows-Integrated authentication](/windows-server/security/windows-authentication/windows-authentication-overview) | Yes | [Yes](odbc/linux-mac/using-integrated-authentication.md) | [Yes](jdbc/using-kerberos-integrated-authentication-to-connect-to-sql-server.md) | Yes | |
| 61 | +| [Bulk Copy](../relational-databases/import-export/bulk-import-and-export-of-data-sql-server.md) | [Yes](../relational-databases/native-client-odbc-extensions-bulk-copy-functions/sql-server-driver-extensions-bulk-copy-functions.md) | [Yes](../relational-databases/native-client-odbc-extensions-bulk-copy-functions/sql-server-driver-extensions-bulk-copy-functions.md) | [Yes](jdbc/using-bulk-copy-with-the-jdbc-driver.md) | [Yes](oledb/features/performing-bulk-copy-operations.md) | |
| 62 | +| [Data Discovery and Classification metadata](../relational-databases/security/sql-data-discovery-and-classification.md) | [Yes](odbc/data-classification.md) | [Yes](odbc/data-classification.md) | [Yes](jdbc/data-discovery-classification-sample.md) | | |
| 63 | +| [Multiple Active Result Sets (MARS)](../relational-databases/native-client/features/using-multiple-active-result-sets-mars.md) | [Yes](../relational-databases/native-client/features/using-multiple-active-result-sets-mars.md) | [Yes](../relational-databases/native-client/features/using-multiple-active-result-sets-mars.md) | | [Yes](oledb/features/using-multiple-active-result-sets-mars.md) | |
| 64 | +| [Spatial Data Types](../relational-databases/spatial/spatial-data-sql-server.md) | | | [Yes](jdbc/use-spatial-datatypes.md) | | |
| 65 | +| [Table-Valued Parameters (TVP)](../relational-databases/tables/use-table-valued-parameters-database-engine.md) | [Yes](../relational-databases/native-client-odbc-table-valued-parameters/table-valued-parameters-odbc.md) | [Yes](../relational-databases/native-client-odbc-table-valued-parameters/table-valued-parameters-odbc.md) | [Yes](jdbc/using-table-valued-parameters.md) | [Yes](oledb/ole-db-table-valued-parameters/table-valued-parameters-ole-db.md) | |
| 66 | +| [MultiSubnetFailover](../relational-databases/native-client/features/sql-server-native-client-support-for-high-availability-disaster-recovery.md#connecting-with-multisubnetfailover) | [Yes](../relational-databases/native-client/features/sql-server-native-client-support-for-high-availability-disaster-recovery.md#connecting-with-multisubnetfailover) | [Yes](../relational-databases/native-client/features/sql-server-native-client-support-for-high-availability-disaster-recovery.md#connecting-with-multisubnetfailover) | [Yes](jdbc/jdbc-driver-support-for-high-availability-disaster-recovery.md) | [Yes](oledb/features/oledb-driver-for-sql-server-support-for-high-availability-disaster-recovery.md#connecting-with-multisubnetfailover) | |
| 67 | +| [Transparent Network IP Resolution](odbc/using-transparent-network-ip-resolution.md) | [Yes](odbc/using-transparent-network-ip-resolution.md) | [Yes](odbc/using-transparent-network-ip-resolution.md) | [Yes](jdbc/setting-the-connection-properties.md) | | |
| 68 | +| | | | | | |
| 69 | + |
| 70 | +| <a id="table3"></a>Feature | [Drivers for PHP for SQL Server on Windows](php/microsoft-php-driver-for-sql-server.md) | [Drivers for PHP for SQL Server on Linux/<wbr>macOS](php/microsoft-php-driver-for-sql-server.md) | [Tedious (Node.js)](node-js/node-js-driver-for-sql-server.md) | [pyODBC (Python)](python/pyodbc/python-sql-driver-pyodbc.md) | |
| 71 | +| :-- | :-- | :-- | :-- | :-- | |
| 72 | +| [Always Encrypted](../relational-databases/security/encryption/always-encrypted-database-engine.md) | [Yes](php/using-always-encrypted-php-drivers.md) | [Yes](php/using-always-encrypted-php-drivers.md) | | Yes | |
| 73 | +| [Always Encrypted with secure enclaves](../relational-databases/security/encryption/always-encrypted-enclaves.md) | [Yes](php/always-encrypted-secure-enclaves.md) | [Yes](php/always-encrypted-secure-enclaves.md) | | Yes | |
| 74 | +| [Azure Active Directory Access Token authentication](/azure/active-directory/develop/access-tokens) | [Yes](php/azure-active-directory.md) | [Yes](php/azure-active-directory.md) | [Yes](https://tediousjs.github.io/tedious/api-connection.html#function_newConnection) | Yes | |
| 75 | +| [Azure Active Directory Password authentication](/azure/sql-database/sql-database-aad-authentication) | [Yes](php/azure-active-directory.md) | [Yes](php/azure-active-directory.md)<sup>[1](#note1)</sup> | [Yes](https://tediousjs.github.io/tedious/api-connection.html#function_newConnection) | Yes | |
| 76 | +| [Azure Active Directory Integrated authentication](/azure/sql-database/sql-database-aad-authentication) | | | | Yes<sup>[2](#note2)</sup> | |
| 77 | +| [Azure Active Directory Interactive (MFA) authentication](/azure/sql-database/sql-database-aad-authentication) | | | | Yes<sup>[2](#note2)</sup> | |
| 78 | +| [Azure Active Directory Managed Identity authentication](/azure/active-directory/managed-identities-azure-resources/overview) | [Yes](php/azure-active-directory.md) | [Yes](php/azure-active-directory.md) | [Yes](https://tediousjs.github.io/tedious/api-connection.html#function_newConnection) | Yes | |
| 79 | +| [Windows-Integrated authentication](/windows-server/security/windows-authentication/windows-authentication-overview) | [Yes](php/how-to-connect-using-windows-authentication.md) | [Yes](odbc/linux-mac/using-integrated-authentication.md) | | Yes | |
| 80 | +| [Bulk Copy](../relational-databases/import-export/bulk-import-and-export-of-data-sql-server.md) | | | [Yes](https://tediousjs.github.io/tedious/bulk-load.html) | | |
| 81 | +| [Data Discovery and Classification metadata](../relational-databases/security/sql-data-discovery-and-classification.md) | Yes | Yes | | | |
| 82 | +| [Multiple Active Result Sets (MARS)](../relational-databases/native-client/features/using-multiple-active-result-sets-mars.md) | [Yes](php/how-to-disable-multiple-active-resultsets-mars.md) | [Yes](php/how-to-disable-multiple-active-resultsets-mars.md) | | Yes | |
| 83 | +| [Spatial Data Types](../relational-databases/spatial/spatial-data-sql-server.md) | | | | | |
| 84 | +| [Table-Valued Parameters (TVP)](../relational-databases/tables/use-table-valued-parameters-database-engine.md) | | | [Yes](https://tediousjs.github.io/tedious/parameters.html) | Yes | |
| 85 | +| [MultiSubnetFailover](../relational-databases/native-client/features/sql-server-native-client-support-for-high-availability-disaster-recovery.md#connecting-with-multisubnetfailover) | [Yes](php/php-driver-for-sql-server-support-for-high-availability-disaster-recovery.md) | [Yes](php/php-driver-for-sql-server-support-for-high-availability-disaster-recovery.md) | | [Yes](../relational-databases/native-client/features/sql-server-native-client-support-for-high-availability-disaster-recovery.md#connecting-with-multisubnetfailover) | |
| 86 | +| [Transparent Network IP Resolution](odbc/using-transparent-network-ip-resolution.md) | [Yes](php/php-driver-for-sql-server-support-for-high-availability-disaster-recovery.md) | [Yes](php/php-driver-for-sql-server-support-for-high-availability-disaster-recovery.md) | | [Yes](odbc/using-transparent-network-ip-resolution.md) | |
| 87 | +| | | | | | |
| 88 | + |
| 89 | +<a id="note1"></a><sup>1</sup> Active Directory federated authentication without password hash synchronization or pass-through authentication isn't supported on Linux and macOS. |
| 90 | + |
| 91 | +<a id="note2"></a><sup>2</sup> Only on Windows. |
| 92 | + |
| 93 | +[!INCLUDE[get-help-options](../includes/paragraph-content/get-help-options.md)] |
| 94 | + |
| 95 | +[!INCLUDE[contribute-to-content](../includes/paragraph-content/contribute-to-content.md)] |
0 commit comments