- Stack Overflow The World’s Largest Online Community for Developers.
- Forklift Driver - 2nd Shift SNI Financial Holyoke, MA 1 day ago Be among the first 25 applicants. See who SNI Financial has hired for this role. Apply on company website Save.
Release notes for Microsoft.Data.SqlClient 2.1
Team truck drivers expect more miles and more money. At Schneider, you can expect to see between 5,000 and 6,000 miles per week, so that means you'll be brin.
Release notes are also available in the GitHub Repository: 2.1 Release Notes.
New features
Cross-Platform support for Always Encrypted
Microsoft.Data.SqlClient v2.1 extends support for Always Encrypted on the following platforms:
Support Always Encrypted | Support Always Encrypted with Secure Enclave | Target Framework | Microsoft.Data.SqlClient Version | Operating System |
---|---|---|---|---|
Yes | Yes | .NET Framework 4.6+ | 1.1.0+ | Windows |
Yes | Yes | .NET Core 2.1+ | 2.1.0+1 | Windows, Linux, macOS |
Yes | No2 | .NET Standard 2.0 | 2.1.0+ | Windows, Linux, macOS |
Yes | Yes | .NET Standard 2.1+ | 2.1.0+ | Windows, Linux, macOS |
Note
1 Before Microsoft.Data.SqlClient version v2.1, Always Encrypted is only supported on Windows.2 Always Encrypted with secure enclaves is not supported on .NET Standard 2.0.
Azure Active Directory Device Code Flow authentication
Microsoft.Data.SqlClient v2.1 provides support for 'Device Code Flow' authentication with MSAL.NET.Reference documentation: OAuth2.0 Device Authorization Grant flow
Connection string example:
Server=<server>.database.windows.net; Authentication=Active Directory Device Code Flow; Database=Northwind;
The following API enables customization of the Device Code Flow callback mechanism:
Azure Active Directory Managed Identity authentication
Microsoft.Data.SqlClient v2.1 introduces support for Azure Active Directory authentication using managed identities.
The following authentication mode keywords are supported:
- Active Directory Managed Identity
- Active Directory MSI (for cross MS SQL drivers compatibility)
Connection string examples:
Azure Active Directory Interactive authentication enhancements
Microsoft.Data.SqlClient v2.1 adds the following APIs to customize the 'Active Directory Interactive' authentication experience:
SqlClientAuthenticationProviders
configuration section
Microsoft.Data.SqlClient v2.1 introduces a new configuration section, SqlClientAuthenticationProviders
(a clone of the existing SqlAuthenticationProviders
). The existing configuration section, SqlAuthenticationProviders
, is still supported for backwards compatibility when the appropriate type is defined.
The new section allows application config files to contain both a SqlAuthenticationProviders section for System.Data.SqlClient and a SqlClientAuthenticationProviders section for Microsoft.Data.SqlClient.
Azure Active Directory authentication using an application client ID
Microsoft.Data.SqlClient v2.1 introduces support for passing a user-defined application client ID to the Microsoft Authentication Library. Application Client ID is used when authenticating with Azure Active Directory.
The following new APIs are introduced:
- A new constructor has been introduced in ActiveDirectoryAuthenticationProvider:
[Applies to all .NET Platforms (.NET Framework, .NET Core, and .NET Standard)]
Usage:
- A new configuration property has been introduced under
SqlAuthenticationProviderConfigurationSection
andSqlClientAuthenticationProviderConfigurationSection
:
[Applies to .NET Framework and .NET Core]
Usage:
Data Classification v2 support
Microsoft.Data.SqlClient v2.1 introduces support for Data Classification's 'Sensitivity Rank' information. The following new APIs are now available:
Server Process ID for an active SqlConnection
Microsoft.Data.SqlClient v2.1 introduces a new SqlConnection
property, ServerProcessId
, on an active connection.
Trace Logging support in Native SNI
Microsoft.Data.SqlClient v2.1 extends the existing SqlClientEventSource
implementation to enable event tracing in SNI.dll. Events must be captured using a tool like Xperf.
Tracing can be enabled by sending a command to SqlClientEventSource
as illustrated below:
'Command Timeout' connection string property
Microsoft.Data.SqlClient v2.1 introduces the 'Command Timeout' connection string property to override the default of 30 seconds. The timeout for individual commands can be overridden using the CommandTimeout
property on the SqlCommand.
Connection string examples:
'Server={serverURL}; Initial Catalog={db}; Integrated Security=true; Command Timeout=60'
Removal of symbols from Native SNI
With Microsoft.Data.SqlClient v2.1, we've removed the symbols introduced in v2.0.0 from Microsoft.Data.SqlClient.SNI.runtime NuGet starting with v2.1.1. The public symbols are now published to Microsoft Symbols Server for tools like BinSkim that require access to public symbols.
Source-Linking of Microsoft.Data.SqlClient symbols
Starting with Microsoft.Data.SqlClient v2.1, Microsoft.Data.SqlClient symbols are source-linked and published to the Microsoft Symbols Server for an enhanced debugging experience without the need to download source code.
Release notes for Microsoft.Data.SqlClient 2.0
Release notes are also available in the GitHub Repository: 2.0 Release Notes.
Breaking changes
The access modifier for the enclave provider interface
SqlColumnEncryptionEnclaveProvider
has been changed frompublic
tointernal
.Constants in the
SqlClientMetaDataCollectionNames
class have been updated to reflect changes in SQL Server.The driver will now perform Server Certificate validation when the target SQL Server enforces TLS encryption, which is the default for Azure connections.
SqlDataReader.GetSchemaTable()
now returns an emptyDataTable
insteadnull
.The driver now performs decimal scale rounding to match SQL Server behavior. For backwards compatibility, the previous behavior of truncation can be enabled using an AppContext switch.
For .NET Framework applications consuming Microsoft.Data.SqlClient, the SNI.dll files previously downloaded to the
binx64
andbinx86
folders are now namedMicrosoft.Data.SqlClient.SNI.x64.dll
andMicrosoft.Data.SqlClient.SNI.x86.dll
and will be downloaded to thebin
directory.New connection string property synonyms will replace old properties when fetching connection string from
SqlConnectionStringBuilder
for consistency. Read More
New features
DNS failure resiliency
The driver will now cache IP addresses from every successful connection to a SQL Server endpoint that supports the feature. If a DNS resolution failure occurs during a connection attempt, the driver will try establishing a connection using a cached IP address for that server, if any exists.
EventSource tracing
This release introduces support for capturing event trace logs for debugging applications. To capture these events, client applications must listen for events from SqlClient's EventSource implementation:
For more information, see how to Enable event tracing in SqlClient.
Enabling managed networking on Windows
A new AppContext switch, 'Switch.Microsoft.Data.SqlClient.UseManagedNetworkingOnWindows', enables the use of a managed SNI implementation on Windows for testing and debugging purposes. This switch will toggle the driver's behavior to use a managed SNI in .NET Core 2.1+ and .NET Standard 2.0+ projects on Windows, eliminating all dependencies on native libraries for the Microsoft.Data.SqlClient library.
See AppContext Switches in SqlClient for a full list of available switches in the driver.
Enabling decimal truncation behavior
The decimal data scale will be rounded by the driver by default as is done by SQL Server. For backwards compatibility, you can set the AppContext switch 'Switch.Microsoft.Data.SqlClient.TruncateScaledDecimal' to true.
New connection string property synonyms
New synonyms have been added for the following existing connection string properties to avoid spacing confusion around properties with more than one word. Old property names will continue to be supported for backwards compatibility but the new connection string properties will now be included when fetching connection string from SqlConnectionStringBuilder.
Existing connection string property | New Synonym |
---|---|
ApplicationIntent | Application Intent |
ConnectRetryCount | Connect Retry Count |
ConnectRetryInterval | Connect Retry Interval |
PoolBlockingPeriod | Pool Blocking Period |
MultipleActiveResultSets | Multiple Active Result Sets |
MultiSubnetFailover | Multiple Subnet Failover |
TransparentNetworkIPResolution | Transparent Network IP Resolution |
TrustServerCertificate | Trust Server Certificate |
SqlBulkCopy RowsCopied property
The RowsCopied property provides read-only access to the number of rows that have been processed in the ongoing bulk copy operation. This value may not necessarily be equal to the final number of rows added to the destination table.
Connection open overrides
The default behavior of SqlConnection.Open() can be overridden to disable the ten-second delay and automatic connection retries triggered by transient errors.
Note
Note that this override can only be applied to SqlConnection.Open() and not SqlConnection.OpenAsync().
Username support for Active Directory Interactive mode
A username can be specified in the connection string when using Azure Active Directory Interactive authentication mode for both .NET Framework and .NET Core
Set a username using the User ID or UID connection string property:
Order hints for SqlBulkCopy
Order hints can be provided to improve performance for bulk copy operations on tables with clustered indexes. For more information, see the bulk copy operations section.
SNI dependency changes
Microsoft.Data.SqlClient (.NET Core and .NET Standard) on Windows is now dependent on Microsoft.Data.SqlClient.SNI.runtime, replacing the previous dependency on runtime.native.System.Data.SqlClient.SNI. The new dependency adds support for the ARM platform along with the already supported platforms ARM64, x64, and x86 on Windows.
Release notes for Microsoft.Data.SqlClient 1.1.0
Release notes are also available in the GitHub Repository: 1.1 Release Notes.
New features
Sn Driver Booster 7
Always Encrypted with secure enclaves
Always Encrypted is available starting in Microsoft SQL Server 2016. Secure enclaves are available starting in Microsoft SQL Server 2019. To use the enclave feature, connection strings should include the required attestation protocol and attestation URL. For example:
For more information, see:
Release notes for Microsoft.Data.SqlClient 1.0
The initial release for the Microsoft.Data.SqlClient namespace offers additional functionality over the existing System.Data.SqlClient namespace.Release notes are also available on the GitHub Repository: 1.0 Release Notes.
New features
New features over .NET Framework 4.7.2 System.Data.SqlClient
Data Classification - Available in Azure SQL Database and Microsoft SQL Server 2019.
UTF-8 support - Available in Microsoft SQL Server 2019.
New features over .NET Core 2.2 System.Data.SqlClient
Data Classification - Available in Azure SQL Database and Microsoft SQL Server 2019.
UTF-8 support - Available in Microsoft SQL Server 2019.
Authentication - Active Directory Password authentication mode.
Data Classification
Data Classification brings a new set of APIs exposing read-only Data Sensitivity and Classification information about objects retrieved via SqlDataReader when the underlying source supports the feature and contains metadata about data sensitivity and classification. See the sample application at Data Discovery and Classification in SqlClient.
UTF-8 support
UTF-8 support doesn't require any application code changes. These SqlClient changes optimize client-server communication when the server supports UTF-8 and the underlying column collation is UTF-8. See the UTF-8 section under What's new in SQL Server 2019.
Sno Drivers Videos
Always encrypted with enclaves
In general, existing documentation that uses System.Data.SqlClient on .NET Framework and built-in column master key store providers should now work with .NET Core, too.
Sn Driver Toolkit
Authentication
Different authentication modes can be specified by using the Authentication connection string option. For more information, see the documentation for SqlAuthenticationMethod.
Note
Sin Driver
Custom key store providers, like the Azure Key Vault provider, will need to be updated to support Microsoft.Data.SqlClient. Similarly, enclave providers will also need to be updated to support Microsoft.Data.SqlClient.Always Encrypted is only supported against .NET Framework and .NET Core targets. It is not supported against .NET Standard since .NET Standard is missing certain encryption dependencies.