Einführung in den Namespace „Microsoft.Data.SqlClient“Introduction to Microsoft.Data.SqlClient namespace

Download von ADO.NET

Versionshinweise für Microsoft.Data.SqlClient 2.1Release notes for Microsoft.Data.SqlClient 2.1

Die Versionshinweise finden Sie auch im GitHub-Repository: Hinweise zu Version 2.1.Release notes are also available in the GitHub Repository: 2.1 Release Notes.

Neue Features in 2.1New features in 2.1

Plattformübergreifende Unterstützung für Always EncryptedCross-Platform support for Always Encrypted

In Microsoft.Data.SqlClient 2.1 wird die Unterstützung für Always Encrypted auf folgenden Plattformen ausgedehnt:Microsoft.Data.SqlClient v2.1 extends support for Always Encrypted on the following platforms:

Unterstützung von Always EncryptedSupport Always Encrypted Verwenden von Always Encrypted mit Secure EnclavesSupport Always Encrypted with Secure Enclave ZielframeworkTarget Framework Microsoft.Data.SqlClient-VersionMicrosoft.Data.SqlClient Version BetriebssystemOperating System
JaYes JaYes .NET Framework 4.6+.NET Framework 4.6+ Ab 1.1.01.1.0+ WindowsWindows
JaYes JaYes .NET Core 2.1 oder höher.NET Core 2.1+ Ab 2.1.012.1.0+1 Windows, Linux, macOSWindows, Linux, macOS
JaYes Nein2No2 .NET-Standard 2.0.NET Standard 2.0 Ab 2.1.02.1.0+ Windows, Linux, macOSWindows, Linux, macOS
JaYes JaYes Ab .NET Standard 2.1.NET Standard 2.1+ Ab 2.1.02.1.0+ Windows, Linux, macOSWindows, Linux, macOS

Hinweis

1 Vor Microsoft.Data.SqlClient-Version 2.1 wird Always Encrypted nur unter Windows unterstützt.1 Before Microsoft.Data.SqlClient version v2.1, Always Encrypted is only supported on Windows. 2 Always Encrypted mit Secure Enclaves wird nicht unter .NET Standard 2.0 unterstützt.2 Always Encrypted with secure enclaves is not supported on .NET Standard 2.0.

Gerätecodeflow-Authentifizierung bei Azure Active DirectoryAzure Active Directory Device Code Flow authentication

Microsoft.Data.SqlClient 2.1 unterstützt die „Gerätecodeflow“-Authentifizierung mit MSAL.NET.Microsoft.Data.SqlClient v2.1 provides support for "Device Code Flow" authentication with MSAL.NET. Referenzdokumentation: Flow bei Gewährung der OAuth2.0-GeräteautorisierungReference documentation: OAuth2.0 Device Authorization Grant flow

Beispiel für Verbindungszeichenfolge:Connection string example:

Server=<server>.database.windows.net; Authentication=Active Directory Device Code Flow; Database=Northwind;

Die folgende API ermöglicht die Anpassung des Rückrufmechanismus des Gerätecodeflows:The following API enables customization of the Device Code Flow callback mechanism:

public class ActiveDirectoryAuthenticationProvider
{
    // For .NET Framework, .NET Core and .NET Standard targeted applications
    public void SetDeviceCodeFlowCallback(Func<DeviceCodeResult, Task> deviceCodeFlowCallbackMethod)
}

Azure Active Directory-Authentifizierung mit einer verwalteten IdentitätAzure Active Directory Managed Identity authentication

Microsoft.Data.SqlClient 2.1 bietet Unterstützung für die Azure Active Directory-Authentifizierung mithilfe verwalteter Identitäten.Microsoft.Data.SqlClient v2.1 introduces support for Azure Active Directory authentication using managed identities.

Die folgenden Schlüsselwörter für den Authentifizierungsmodus werden unterstützt:The following authentication mode keywords are supported:

  • Active Directory mit verwalteter IdentitätActive Directory Managed Identity
  • Active Directory MSI (für übergreifende Kompatibilität mit Microsoft SQL-Treibern)Active Directory MSI (for cross MS SQL drivers compatibility)

Beispiele für Verbindungszeichenfolgen:Connection string examples:

// For System Assigned Managed Identity
"Server={serverURL}; Authentication=Active Directory MSI; Initial Catalog={db};"

// For System Assigned Managed Identity
"Server={serverURL}; Authentication=Active Directory Managed Identity; Initial Catalog={db};"

// For User Assigned Managed Identity
"Server={serverURL}; Authentication=Active Directory MSI; User Id={ObjectIdOfManagedIdentity}; Initial Catalog={db};"

// For User Assigned Managed Identity
"Server={serverURL}; Authentication=Active Directory Managed Identity; User Id={ObjectIdOfManagedIdentity}; Initial Catalog={db};"

Weiterentwicklungen der interaktiven Azure Active Directory-AuthentifizierungAzure Active Directory Interactive authentication enhancements

Microsoft.Data.SqlClient 2.1 fügt die folgenden APIs zum benutzerdefinierten Anpassen der Umgebung zur interaktiven Active Directory-Authentifizierung hinzu:Microsoft.Data.SqlClient v2.1 adds the following APIs to customize the "Active Directory Interactive" authentication experience:

public class ActiveDirectoryAuthenticationProvider
{
    // For .NET Framework targeted applications only
    public void SetIWin32WindowFunc(Func<IWin32Window> iWin32WindowFunc);

    // For .NET Standard targeted applications only
    public void SetParentActivityOrWindowFunc(Func<object> parentActivityOrWindowFunc);

    // For .NET Framework, .NET Core and .NET Standard targeted applications
    public void SetAcquireAuthorizationCodeAsyncCallback(Func<Uri, Uri, CancellationToken, Task<Uri>> acquireAuthorizationCodeAsyncCallback);

    // For .NET Framework, .NET Core and .NET Standard targeted applications
    public void ClearUserTokenCache();
}

Konfigurationsabschnitt SqlClientAuthenticationProvidersSqlClientAuthenticationProviders configuration section

Microsoft.Data.SqlClient 2.1 enthält nun den neuen Konfigurationsabschnitt SqlClientAuthenticationProviders (ein Klon des vorhandenen Abschnitts SqlAuthenticationProviders).Microsoft.Data.SqlClient v2.1 introduces a new configuration section, SqlClientAuthenticationProviders (a clone of the existing SqlAuthenticationProviders). Der vorhandene Konfigurationsabschnitt SqlAuthenticationProviders wird weiterhin aus Gründen der Abwärtskompatibilität unterstützt, wenn der entsprechende Typ definiert ist.The existing configuration section, SqlAuthenticationProviders, is still supported for backwards compatibility when the appropriate type is defined.

Der neue Abschnitt ermöglicht es, dass Anwendungskonfigurationsdateien sowohl den Abschnitt SqlAuthenticationProviders für System.Data.SqlClient als auch den Abschnitt SqlClientAuthenticationProviders für Microsoft.Data.SqlClient enthalten.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-Authentifizierung mit Anwendungsclient-IDAzure Active Directory authentication using an application client ID

Microsoft.Data.SqlClient 2.1 bietet Unterstützung für das Übergeben einer benutzerdefinierten Anwendungsclient-ID an die Microsoft-Authentifizierungsbibliothek.Microsoft.Data.SqlClient v2.1 introduces support for passing a user-defined application client ID to the Microsoft Authentication Library. Die Anwendungsclient-ID wird bei der Authentifizierung bei Azure Active Directory verwendet.Application Client ID is used when authenticating with Azure Active Directory.

Die folgenden neuen APIs werden eingeführt:The following new APIs are introduced:

  1. Ein neuer Konstruktor wurde in ActiveDirectoryAuthenticationProvider eingeführt:A new constructor has been introduced in ActiveDirectoryAuthenticationProvider:
    [Gilt für alle .NET-Plattformen (.NET Framework, .NET Core und .NET Standard)][Applies to all .NET Platforms (.NET Framework, .NET Core, and .NET Standard)]

    public ActiveDirectoryAuthenticationProvider(string applicationClientId)
    

    Syntax:Usage:

    string APP_CLIENT_ID = "<GUID>";
    SqlAuthenticationProvider customAuthProvider = new ActiveDirectoryAuthenticationProvider(APP_CLIENT_ID);
    SqlAuthenticationProvider.SetProvider(SqlAuthenticationMethod.ActiveDirectoryInteractive, customAuthProvider);
    
    using (SqlConnection sqlConnection = new SqlConnection("<connection_string>")
    {
        sqlConnection.Open();
    }
    
  2. Eine neue Konfigurationseigenschaft wurde unter SqlAuthenticationProviderConfigurationSection und SqlClientAuthenticationProviderConfigurationSection eingeführt:A new configuration property has been introduced under SqlAuthenticationProviderConfigurationSection and SqlClientAuthenticationProviderConfigurationSection:
    [Gilt für .NET Framework und .NET Core][Applies to .NET Framework and .NET Core]

    internal class SqlAuthenticationProviderConfigurationSection : ConfigurationSection
    {
        ...
        [ConfigurationProperty("applicationClientId", IsRequired = false)]
        public string ApplicationClientId => this["applicationClientId"] as string;
    }
    
    // Inheritance
    internal class SqlClientAuthenticationProviderConfigurationSection : SqlAuthenticationProviderConfigurationSection
    { ... }
    

    Syntax:Usage:

    <configuration>
        <configSections>
            <section name="SqlClientAuthenticationProviders"
                             type="Microsoft.Data.SqlClient.SqlClientAuthenticationProviderConfigurationSection, Microsoft.Data.SqlClient" />
        </configSections>
        <SqlClientAuthenticationProviders applicationClientId ="<GUID>" />
    </configuration>
    
    <!--or-->
    
    <configuration>
        <configSections>
            <section name="SqlAuthenticationProviders"
                             type="Microsoft.Data.SqlClient.SqlAuthenticationProviderConfigurationSection, Microsoft.Data.SqlClient" />
        </configSections>
        <SqlAuthenticationProviders applicationClientId ="<GUID>" />
    </configuration>
    

Unterstützung von Datenklassifizierung, Version 2Data Classification v2 support

Microsoft.Data.SqlClient 2.1 bietet jetzt Unterstützung von Informationen zur Vertraulichkeitsbewertung zur Datenklassifizierung.Microsoft.Data.SqlClient v2.1 introduces support for Data Classification's "Sensitivity Rank" information. Die folgenden neuen APIs sind nun verfügbar:The following new APIs are now available:

public class SensitivityClassification
{
    public SensitivityRank SensitivityRank;
}

public class SensitivityProperty
{
    public SensitivityRank SensitivityRank;
}

public enum SensitivityRank
{
    NOT_DEFINED = -1,
    NONE = 0,
    LOW = 10,
    MEDIUM = 20,
    HIGH = 30,
    CRITICAL = 40
}

Serverprozess-ID für eine aktive SqlConnectionServer Process ID for an active SqlConnection

Microsoft.Data.SqlClient 2.1 bietet für eine aktive Verbindung die neue SqlConnection-Eigenschaft ServerProcessId.Microsoft.Data.SqlClient v2.1 introduces a new SqlConnection property, ServerProcessId, on an active connection.

public class SqlConnection
{
    // Returns the server process Id (SPID) of the active connection.
    public int ServerProcessId;
}

Unterstützung der Ablaufverfolgungsprotokollierung in nativer SNI-DateiTrace Logging support in Native SNI

Microsoft.Data.SqlClient 2.1 dehnt die vorhandene Implementierung von SqlClientEventSource aus, um die Ereignisablaufverfolgung in „SNI.dll“ zu ermöglichen.Microsoft.Data.SqlClient v2.1 extends the existing SqlClientEventSource implementation to enable event tracing in SNI.dll. Ereignisse müssen mithilfe eines Tools wie Xperf aufgezeichnet werden.Events must be captured using a tool like Xperf.

Die Ablaufverfolgung kann aktiviert werden, indem wie unten dargestellt ein Befehl an SqlClientEventSource gesendet wird:Tracing can be enabled by sending a command to SqlClientEventSource as illustrated below:

// Enables trace events:
EventSource.SendCommand(eventSource, (EventCommand)8192, null);

// Enables flow events:
EventSource.SendCommand(eventSource, (EventCommand)16384, null);

// Enables both trace and flow events:
EventSource.SendCommand(eventSource, (EventCommand)(8192 | 16384), null);

Verbindungszeichenfolgen-Eigenschaft „Befehlstimeout“"Command Timeout" connection string property

Microsoft.Data.SqlClient 2.1 führt die Verbindungszeichenfolgen-Eigenschaft „Befehlstimeout“ ein, um den Standardwert von 30 Sekunden zu überschreiben.Microsoft.Data.SqlClient v2.1 introduces the "Command Timeout" connection string property to override the default of 30 seconds. Das Zeitlimit für einzelne Befehle kann mit der CommandTimeout-Eigenschaft für SqlCommand überschrieben werden.The timeout for individual commands can be overridden using the CommandTimeout property on the SqlCommand.

Beispiele für Verbindungszeichenfolgen:Connection string examples:

"Server={serverURL}; Initial Catalog={db}; Integrated Security=true; Command Timeout=60"

Entfernung von Symbolen aus nativer SNI-DateiRemoval of symbols from Native SNI

In Microsoft.Data.SqlClient 2.1 haben wir die in v2.0.0 eingeführten Symbole aus dem NuGet-Paket Microsoft.Data.SqlClient.SNI.runtime beginnend mit v2.1.1 entfernt.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. Die öffentlichen Symbole werden jetzt für Tools wie BinSkim, die Zugriff auf öffentliche Symbole benötigen, auf dem Microsoft-Symbolserver veröffentlicht.The public symbols are now published to Microsoft Symbols Server for tools like BinSkim that require access to public symbols.

Quellverknüpfung von Microsoft.Data.SqlClient-SymbolenSource-Linking of Microsoft.Data.SqlClient symbols

Ab Microsoft.Data.SqlClient 2.1 werden Microsoft.Data.SqlClient-Symbole mit Quellcode verknüpft und auf dem Microsoft-Symbolserver veröffentlicht, um das Debuggen zu erleichtern, ohne dass Quellcode heruntergeladen werden muss.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.

Versionshinweise für Microsoft.Data.SqlClient 2.0Release notes for Microsoft.Data.SqlClient 2.0

Die Versionshinweise finden Sie auch im GitHub-Repository: Versionshinweise zu 2.0Release notes are also available in the GitHub Repository: 2.0 Release Notes.

Breaking Changes in Version 2.0Breaking changes in 2.0

  • Die Zugriffsmodifizierer für die Schnittstelle SqlColumnEncryptionEnclaveProvider des Enclave-Anbieters wurde von public in internal geändert.The access modifier for the enclave provider interface SqlColumnEncryptionEnclaveProvider has been changed from public to internal.
  • Konstanten in der SqlClientMetaDataCollectionNames-Klasse wurden aktualisiert, um die Änderungen in SQL Server widerzuspiegeln.Constants in the SqlClientMetaDataCollectionNames class have been updated to reflect changes in SQL Server.
  • Der Treiber führt nun eine Überprüfung des Serverzertifikats aus, wenn die SQL Server-Zielinstanz TLS-Verschlüsselung erzwingt. Dies ist die Standardeinstellung für Azure-Verbindungen.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() gibt nun anstelle von null eine leere DataTable-Klasse zurück.SqlDataReader.GetSchemaTable() now returns an empty DataTable instead null.
  • Der Treiber führt nun eine Rundung von Dezimalzahlen durch, um dem Verhalten von SQL Server zu entsprechen.The driver now performs decimal scale rounding to match SQL Server behavior. Wenn eine Abwärtskompatibilität erforderlich ist, kann das bisherige Verhalten (Kürzen) mithilfe einer AppContext-Option aktiviert werden.For backwards compatibility, the previous behavior of truncation can be enabled using an AppContext switch.
  • Bei .NET Framework-Anwendungen, die Microsoft.Data.SqlClient nutzen, heißen die zuvor in die Ordner bin\x64 und bin\x86 heruntergeladenen SNI.DLL-Dateien nun Microsoft.Data.SqlClient.SNI.x64.dll und Microsoft.Data.SqlClient.SNI.x86.dll und werden in das Verzeichnis bin heruntergeladen.For .NET Framework applications consuming Microsoft.Data.SqlClient, the SNI.dll files previously downloaded to the bin\x64 and bin\x86 folders are now named Microsoft.Data.SqlClient.SNI.x64.dll and Microsoft.Data.SqlClient.SNI.x86.dll and will be downloaded to the bin directory.
  • Neue Synonyme für Verbindungszeichenfolgeneigenschaften ersetzen alte Eigenschaften beim Abrufen von Verbindungszeichenfolgen aus SqlConnectionStringBuilder aus Gründen der Konsistenz.New connection string property synonyms will replace old properties when fetching connection string from SqlConnectionStringBuilder for consistency. Weitere InformationenRead More

Neue Features in Version 2.0New features in 2.0

Die folgenden neuen Features wurden in Microsoft.Data.SqlClient 2.0 eingeführt.The following new features have been introduced in Microsoft.Data.SqlClient 2.0.

DNS-FehlerresilienzDNS failure resiliency

Der Treiber speichert IP-Adressen ab sofort für jede erfolgreiche Verbindung zu einem SQL Server-Endpunkt zwischen, der das Feature unterstützt.The driver will now cache IP addresses from every successful connection to a SQL Server endpoint that supports the feature. Wenn während eines Verbindungsversuchs ein Fehler bei der DNS-Auflösung auftritt, versucht der Treiber, mithilfe einer zwischengespeicherten IP-Adresse für diesen Server (sofern vorhanden) eine Verbindung herzustellen.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-NachverfolgungEventSource tracing

Ab diesem Release wird das Erfassen von Ereignisablaufprotokollen unterstützt, um Anwendungen zu debuggen.This release introduces support for capturing event trace logs for debugging applications. Zur Erfassung dieser Ereignisse müssen Clientanwendungen auf Ereignisse aus der EventSource-Implementierung von SqlClient lauschen:To capture these events, client applications must listen for events from SqlClient's EventSource implementation:

Microsoft.Data.SqlClient.EventSource

Weitere Informationen finden Sie unter Aktivieren der Ereignisablaufverfolgung in SqlClient.For more information, see how to Enable event tracing in SqlClient.

Aktivieren verwalteter Netzwerke unter WindowsEnabling managed networking on Windows

Mithilfe der neuen AppContext-Option Switch.Microsoft.Data.SqlClient.UseManagedNetworkingOnWindows kann unter Windows zu Test- und Debuggingzwecken eine verwaltete SNI-Implementierung verwendet werden.A new AppContext switch, "Switch.Microsoft.Data.SqlClient.UseManagedNetworkingOnWindows", enables the use of a managed SNI implementation on Windows for testing and debugging purposes. Diese Option schaltet das Verhalten des Treibers so um, dass in Projekten in .NET Core 2.1 und höher und in .NET Standard 2.0 und höher unter Windows eine verwaltete SNI verwendet wird. Dies beseitigt alle Abhängigkeiten von nativen Bibliotheken für die Microsoft.Data.SqlClient-Bibliothek.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.

AppContext.SetSwitch("Switch.Microsoft.Data.SqlClient.UseManagedNetworkingOnWindows", true);

Unter AppContext-Optionen in SqlClient finden Sie eine vollständige Liste verfügbarer Optionen für den Treiber.See AppContext Switches in SqlClient for a full list of available switches in the driver.

Aktivieren des Kürzungsverhaltens für DezimalzahlenEnabling decimal truncation behavior

decimal-Datentypen werden vom Treiber standardmäßig gerundet, wie das auch bei SQL Server der Fall ist.The decimal data scale will be rounded by the driver by default as is done by SQL Server. Aus Gründen der Abwärtskompatibilität können Sie die AppContext-Option Switch.Microsoft.Data.SqlClient.TruncateScaledDecimal auf True festlegen.For backwards compatibility, you can set the AppContext switch "Switch.Microsoft.Data.SqlClient.TruncateScaledDecimal" to true.

AppContext.SetSwitch("Switch.Microsoft.Data.SqlClient.TruncateScaledDecimal", true);

Neue Synonyme für VerbindungszeichenfolgeneigenschaftenNew connection string property synonyms

Für die folgenden vorhandenen Verbindungszeichenfolgeneigenschaften wurden neue Synonyme hinzugefügt, um Verwirrung bei den Leerzeichen von Eigenschaften zu verhindern, die aus mehr als einem Wort bestehen.New synonyms have been added for the following existing connection string properties to avoid spacing confusion around properties with more than one word. Aus Gründen der Abwärtskompatibilität werden alte Eigenschaftennamen weiterhin unterstützt, die neuen Verbindungszeichenfolgeneigenschaften werden ab sofort aber eingeschlossen, wenn Verbindungszeichenfolgen aus SqlConnectionStringBuilder abgerufen werden.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.

Vorhandene VerbindungszeichenfolgeneigenschaftExisting connection string property Neues SynonymNew Synonym
ApplicationIntentApplicationIntent Application IntentApplication Intent
ConnectRetryCountConnectRetryCount Connect Retry Count (Anzahl der Verbindungsversuche)Connect Retry Count
ConnectRetryIntervalConnectRetryInterval Connect Retry Interval (Verbindungswiederholungsintervall)Connect Retry Interval
PoolBlockingPeriodPoolBlockingPeriod Pool Blocking Period (Blockierungszeitraum für einen Pool)Pool Blocking Period
MultipleActiveResultSetsMultipleActiveResultSets Multiple Active Result Sets (Mehrere aktive Resultsets)Multiple Active Result Sets
MultiSubnetFailoverMultiSubnetFailover Multiple Subnet Failover (Failover für mehrere Subnetze)Multiple Subnet Failover
TransparentNetworkIPResolutionTransparentNetworkIPResolution Transparent Network IP Resolution (Transparente Netzwerk-IP-Adressauflösung)Transparent Network IP Resolution
TrustServerCertificateTrustServerCertificate TrustServerCertificateTrust Server Certificate

SqlBulkCopy-Eigenschaft „RowsCopied“SqlBulkCopy RowsCopied property

Die RowsCopied-Eigenschaft bietet schreibgeschützten Zugriff auf die Anzahl der Datensätze, die von einem aktiven Massenkopiervorgang bereits verarbeitet wurden.The RowsCopied property provides read-only access to the number of rows that have been processed in the ongoing bulk copy operation. Dieser Wert entspricht nicht unweigerlich der endgültigen Anzahl an Datensätzen, die der Zieltabelle hinzugefügt wurden.This value may not necessarily be equal to the final number of rows added to the destination table.

Überschreibungen von SqlConnection.OpenConnection open overrides

Das Standardverhalten von SqlConnection.Open() kann überschrieben werden, um die Verzögerung von zehn Sekunden und automatische erneute Verbindungsversuche zu deaktivieren, die von vorübergehenden Fehlern ausgelöst werden.The default behavior of SqlConnection.Open() can be overridden to disable the ten-second delay and automatic connection retries triggered by transient errors.

using SqlConnection sqlConnection = new SqlConnection("Data Source=(local);Integrated Security=true;Initial Catalog=AdventureWorks;");
sqlConnection.Open(SqlConnectionOverrides.OpenWithoutRetry);

Hinweis

Beachten Sie, dass diese Überschreibung nur auf SqlConnection.Open() angewendet werden kann, nicht auf SqlConnection.OpenAsync().Note that this override can only be applied to SqlConnection.Open() and not SqlConnection.OpenAsync().

Unterstützung für Benutzernamen bei der interaktiven Active Directory-AuthentifizierungUsername support for Active Directory Interactive mode

Bei Verwendung der interaktiven Active Directory-Authentifizierung kann sowohl für .NET Framework als auch für .NET Core ein Benutzername in der Verbindungszeichenfolge angegeben werden.A username can be specified in the connection string when using Azure Active Directory Interactive authentication mode for both .NET Framework and .NET Core

Legen Sie einen Benutzernamen mithilfe der Verbindungszeichenfolgeneigenschaft User ID oder UID fest:Set a username using the User ID or UID connection string property:

"Server=<server name>; Database=<db name>; Authentication=Active Directory Interactive; User Id=<username>;"

Hinweise für die Sortierung für SqlBulkCopyOrder hints for SqlBulkCopy

Hinweise für die Sortierung können bereitgestellt werden, um die Leistung von Massenkopiervorgängen für Tabellen mit gruppierten Indizes zu verbessern.Order hints can be provided to improve performance for bulk copy operations on tables with clustered indexes. Weitere Informationen finden Sie unter Hinweise für die Sortierung für Massenkopiervorgänge.For more information, see the bulk copy operations section.

SNI-AbhängigkeitsänderungenSNI dependency changes

Microsoft.Data.SqlClient (.NET Core und .NET Standard) weisen unter Windows nun eine Abhängigkeit von Microsoft.Data.SqlClient.SNI.runtime auf. Dadurch wird die bisherige Abhängigkeit von runtime.native.System.Data.SqlClient.SNI ersetzt.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. Mit der neuen Abhängigkeit wird die ARM-Plattform zusammen mit den bereits unterstützten Plattformen ARM64, x64 und x86 unter Windows unterstützt.The new dependency adds support for the ARM platform along with the already supported platforms ARM64, x64, and x86 on Windows.

Versionshinweise zu Microsoft.Data.SqlClient 1.1.0Release notes for Microsoft.Data.SqlClient 1.1.0

Die Versionshinweise finden Sie auch im GitHub-Repository: Hinweise zur Version 1.1.Release notes are also available in the GitHub Repository: 1.1 Release Notes.

Neue Features in Version 1.1New features in 1.1

Always Encrypted mit Secure EnclavesAlways Encrypted with secure enclaves

Always Encrypted ist ab Microsoft SQL Server 2016 verfügbar.Always Encrypted is available starting in Microsoft SQL Server 2016. Secure Enclaves sind ab Microsoft SQL Server 2019 verfügbar.Secure enclaves are available starting in Microsoft SQL Server 2019. Die Verbindungszeichenfolgen müssen das erforderliche Nachweisprotokoll und die Nachweis-URL enthalten, um das Enclave-Feature nutzen zu können.To use the enclave feature, connection strings should include the required attestation protocol and attestation URL. Beispiel:For example:

"Attestation Protocol=HGS;Enclave Attestation Url=<attestation_url_for_HGS>"

Weitere Informationen finden Sie unterFor more information, see:

Versionshinweise für Microsoft.Data.SqlClient 1.0Release notes for Microsoft.Data.SqlClient 1.0

Die erste Version des Namespace „Microsoft.Data.SqlClient“ bietet gegenüber dem bestehenden Namespace „System.Data.SqlClient“ zusätzliche Funktionen.The initial release for the Microsoft.Data.SqlClient namespace offers more functionality over the existing System.Data.SqlClient namespace. Die Versionshinweise finden Sie auch im GitHub-Repository: Hinweise zur Version 1.0.Release notes are also available on the GitHub Repository: 1.0 Release Notes.

Neue Features in Version 1.0New features in 1.0

Neue Features im Vergleich zu System.Data.SqlClient in .NET Framework 4.7.2New features over .NET Framework 4.7.2 System.Data.SqlClient

  • Datenklassifizierung: verfügbar in Azure SQL-Datenbank und Microsoft SQL Server 2019.Data Classification - Available in Azure SQL Database and Microsoft SQL Server 2019.

  • UTF-8-Unterstützung: verfügbar in Microsoft SQL Server 2019.UTF-8 support - Available in Microsoft SQL Server 2019.

Neue Features im Vergleich zu System.Data.SqlClient in .NET Core 2.2New features over .NET Core 2.2 System.Data.SqlClient

  • Datenklassifizierung: verfügbar in Azure SQL-Datenbank und Microsoft SQL Server 2019.Data Classification - Available in Azure SQL Database and Microsoft SQL Server 2019.

  • UTF-8-Unterstützung: verfügbar in Microsoft SQL Server 2019.UTF-8 support - Available in Microsoft SQL Server 2019.

  • Authentifizierung: Active Directory-Kennwortauthentifizierungsmodus.Authentication - Active Directory Password authentication mode.

DatenklassifizierungData Classification

Das Feature „Datenklassifizierung“ bietet eine neue Gruppe von APIs, die schreibgeschützte Informationen zur Datenvertraulichkeit und -klassifizierung von Objekten verfügbar machen. Diese werden über SqlDataReader abgerufen, wenn die zugrunde liegende Quelle das Feature unterstützt und Metadaten zu Datenvertraulichkeit und -klassifizierung enthält.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. Unter Microsoft.Data.SqlClient 1.1-Releases finden Sie die Beispielanwendung.See the sample application at Data Discovery and Classification in SqlClient.

public class SqlDataReader
{
    public Microsoft.Data.SqlClient.DataClassification.SensitivityClassification SensitivityClassification
}

namespace Microsoft.Data.SqlClient.DataClassification
{
    public class ColumnSensitivity
    {
        public System.Collections.ObjectModel.ReadOnlyCollection<Microsoft.Data.SqlClient.DataClassification.SensitivityProperty> SensitivityProperties
    }
    public class InformationType
    {
        public string Id
        public string Name
    }
    public class Label
    {
        public string Id
        public string Name
    }
    public class SensitivityClassification
    {
        public System.Collections.ObjectModel.ReadOnlyCollection<Microsoft.Data.SqlClient.DataClassification.ColumnSensitivity> ColumnSensitivities
        public System.Collections.ObjectModel.ReadOnlyCollection<Microsoft.Data.SqlClient.DataClassification.InformationType> InformationTypes
        public System.Collections.ObjectModel.ReadOnlyCollection<Microsoft.Data.SqlClient.DataClassification.Label> Labels
    }
    public class SensitivityProperty
    {
        public Microsoft.Data.SqlClient.DataClassification.InformationType InformationType
        public Microsoft.Data.SqlClient.DataClassification.Label Label
    }
}

Unterstützung für UTF-8UTF-8 support

Für UTF-8-Unterstützung sind keine Änderungen am Anwendungscode erforderlich.UTF-8 support doesn't require any application code changes. Diese SqlClient-Änderungen optimieren die Kommunikation zwischen Client und Server, wenn der Server UTF-8 unterstützt und die zugrunde liegende Spaltensortierung UTF-8 ist.These SqlClient changes optimize client-server communication when the server supports UTF-8 and the underlying column collation is UTF-8. Weitere Informationen finden Sie im Abschnitt über UTF-8 unter Neues in SQL Server 2019 (15.x).See the UTF-8 section under What's new in SQL Server 2019.

Always Encrypted mit Secure EnclavesAlways encrypted with secure enclaves

Im Allgemeinen sollte die vorhandene Dokumentation zu System.Data.SqlClient im .NET Framework und integrierten Anbietern von Speicher für Spaltenhauptschlüssel nun auch für .NET Core gelten.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.

Entwickeln von Always Encrypted mit .NET Framework-DatenanbieterDevelop using Always Encrypted with .NET Framework Data Provider

Always Encrypted: Schützen vertraulicher Daten und Speichern von Verschlüsselungsschlüsseln im Windows-ZertifikatspeicherAlways Encrypted: Protect sensitive data and store encryption keys in the Windows certificate store

AuthentifizierungAuthentication

Unterschiedliche Authentifizierungsmodi können angegeben werden, indem in der Verbindungszeichenfolge die Option Authentifizierung verwendet wird.Different authentication modes can be specified by using the Authentication connection string option. Weitere Informationen finden Sie in der Dokumentation zu SqlAuthenticationMethod.For more information, see the documentation for SqlAuthenticationMethod.

Hinweis

Anbieter benutzerdefinierter Schlüsselspeicher wie der Azure Key Vault-Anbieter müssen aktualisiert werden, damit Microsoft.Data.SqlClient unterstützt wird.Custom key store providers, like the Azure Key Vault provider, will need to be updated to support Microsoft.Data.SqlClient. Ebenso müssen auch die Enclave-Anbieter aktualisiert werden, um Microsoft.Data.SqlClient zu unterstützen.Similarly, enclave providers will also need to be updated to support Microsoft.Data.SqlClient. Always Encrypted wird nur für .NET Framework- und .NET Core-Ziele unterstützt.Always Encrypted is only supported against .NET Framework and .NET Core targets. Das Feature wird nicht für .NET Standard nicht unterstützt, da .NET Standard bestimmte Verschlüsselungsabhängigkeiten fehlen.It is not supported against .NET Standard since .NET Standard is missing certain encryption dependencies.