Microsoft.Data.SqlClient 名前空間の概要Introduction to Microsoft.Data.SqlClient namespace

ADO.NET のダウンロード

Microsoft.Data.SqlClient 2.1 のリリース ノートRelease notes for Microsoft.Data.SqlClient 2.1

リリース ノートは、GitHub リポジトリの 2.1 リリース ノートでも入手できます。Release notes are also available in the GitHub Repository: 2.1 Release Notes.

2.1 の新機能New features in 2.1

Always Encrypted でのクロスプラットフォームのサポートCross-Platform support for Always Encrypted

Microsoft.Data.SqlClient v2.1 での拡張により、次のプラットフォームで Always Encrypted がサポートされるようになります。Microsoft.Data.SqlClient v2.1 extends support for Always Encrypted on the following platforms:

Always Encrypted のサポートSupport Always Encrypted セキュリティで保護されたエンクレーブを使用する Always Encrypted のサポートSupport Always Encrypted with Secure Enclave [対象とする Framework]Target Framework Microsoft.Data.SqlClient のバージョンMicrosoft.Data.SqlClient Version オペレーティング システムOperating System
はいYes はいYes .NET Framework 4.6+.NET Framework 4.6+ 1.1.0 以降1.1.0+ WindowsWindows
はいYes はいYes .NET Core 2.1 以降.NET Core 2.1+ 2.1.0 以降12.1.0+1 Windows、Linux、macOSWindows, Linux, macOS
はいYes いいえ2No2 .NET Standard 2.0.NET Standard 2.0 2.1.0 以降2.1.0+ Windows、Linux、macOSWindows, Linux, macOS
はいYes はいYes .NET Standard 2.1 以降.NET Standard 2.1+ 2.1.0 以降2.1.0+ Windows、Linux、macOSWindows, Linux, macOS

注意

1 v2.1 より前のバージョンの Microsoft.Data.SqlClient では、Always Encrypted は Windows でのみサポートされています。1 Before Microsoft.Data.SqlClient version v2.1, Always Encrypted is only supported on Windows. 2 セキュリティで保護されたエンクレーブを使用する Always Encrypted は、.NET Standard 2.0 ではサポートされていません。2 Always Encrypted with secure enclaves is not supported on .NET Standard 2.0.

Azure Active Directory でのデバイス コード フロー認証Azure Active Directory Device Code Flow authentication

Microsoft.Data.SqlClient v2.1 では、MSAL.NET での "デバイス コード フロー" 認証がサポートされています。Microsoft.Data.SqlClient v2.1 provides support for "Device Code Flow" authentication with MSAL.NET. リファレンス ドキュメント:OAuth 2.0 デバイス許可付与フローに関するページReference documentation: OAuth2.0 Device Authorization Grant flow

接続文字列の例:Connection string example:

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

次の API を使用すると、デバイス コード フローのコールバック メカニズムをカスタマイズできます。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 マネージド ID 認証Azure Active Directory Managed Identity authentication

マネージド ID を使用する Azure Active Directory 認証のサポートが、Microsoft.Data.SqlClient v2.1 で導入されています。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 IdentityActive Directory Managed Identity
  • Active Directory MSI (クロス MS SQL ドライバーの互換性の場合)Active Directory MSI (for cross MS SQL drivers compatibility)

接続文字列の例: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};"

Azure Active Directory 対話型認証の機能強化Azure Active Directory Interactive authentication enhancements

Microsoft.Data.SqlClient v2.1 で追加された次の API を使用すると、"Active Directory 対話型" 認証のエクスペリエンスをカスタマイズできます。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();
}

SqlClientAuthenticationProviders 構成セクションSqlClientAuthenticationProviders configuration section

Microsoft.Data.SqlClient v2.1 には、新しい構成セクション SqlClientAuthenticationProviders が導入されています (既存の SqlAuthenticationProviders の複製)。Microsoft.Data.SqlClient v2.1 introduces a new configuration section, SqlClientAuthenticationProviders (a clone of the existing SqlAuthenticationProviders). 既存の構成セクション SqlAuthenticationProviders は、適切な型が定義されているときの下位互換性のために引き続きサポートされます。The existing configuration section, SqlAuthenticationProviders, is still supported for backwards compatibility when the appropriate type is defined.

新しいセクションを使用すると、アプリケーション構成ファイルに、System.Data.SqlClient 用の SqlAuthenticationProviders セクションと、Microsoft.Data.SqlClient 用の SqlClientAuthenticationProviders セクションの両方を含めることができます。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.

アプリケーション クライアント ID を使用する Azure Active Directory 認証Azure Active Directory authentication using an application client ID

Microsoft.Data.SqlClient v2.1 には、ユーザー定義のアプリケーション クライアント ID を Microsoft 認証ライブラリに渡すためのサポートが導入されています。Microsoft.Data.SqlClient v2.1 introduces support for passing a user-defined application client ID to the Microsoft Authentication Library. アプリケーション クライアント ID は、Azure Active Directory で認証を行うときに使用されます。Application Client ID is used when authenticating with Azure Active Directory.

次の新しい API が導入されています。The following new APIs are introduced:

  1. 新しいコンストラクターが ActiveDirectoryAuthenticationProvider に導入されました。A new constructor has been introduced in ActiveDirectoryAuthenticationProvider:
    [すべての .NET プラットフォーム (.NET Framework、.NET Core、.NET Standard) に適用されます][Applies to all .NET Platforms (.NET Framework, .NET Core, and .NET Standard)]

    public ActiveDirectoryAuthenticationProvider(string applicationClientId)
    

    用途: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. SqlAuthenticationProviderConfigurationSectionSqlClientAuthenticationProviderConfigurationSection に新しい構成プロパティが導入されました。A new configuration property has been introduced under SqlAuthenticationProviderConfigurationSection and SqlClientAuthenticationProviderConfigurationSection:
    [.NET Framework と .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
    { ... }
    

    用途: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>
    

データ分類 v2 のサポートData Classification v2 support

Microsoft.Data.SqlClient v2.1 には、データ分類の "秘密度ランク" 情報のサポートが導入されています。Microsoft.Data.SqlClient v2.1 introduces support for Data Classification's "Sensitivity Rank" information. 次の新しい API を使用できるようになりました。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
}

アクティブな SqlConnection のサーバー プロセス IDServer Process ID for an active SqlConnection

Microsoft.Data.SqlClient v2.1 には、アクティブな接続での新しい SqlConnection プロパティ 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;
}

ネイティブ SNI でのトレース ログのサポートTrace Logging support in Native SNI

Microsoft.Data.SqlClient v2.1 では、SNI.dll でイベントのトレースを使用できるように、既存の SqlClientEventSource の実装が拡張されています。Microsoft.Data.SqlClient v2.1 extends the existing SqlClientEventSource implementation to enable event tracing in SNI.dll. イベントは、Xperf などのツールを使用してキャプチャする必要があります。Events must be captured using a tool like Xperf.

トレースを有効にするには、次に示すように SqlClientEventSource にコマンドを送信します。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);

"Command Timeout" 接続文字列プロパティ"Command Timeout" connection string property

Microsoft.Data.SqlClient v2.1 で導入された "Command Timeout" 接続文字列プロパティを使用すると、既定の 30 秒をオーバーライドできます。Microsoft.Data.SqlClient v2.1 introduces the "Command Timeout" connection string property to override the default of 30 seconds. 個々のコマンドのタイムアウトは、SqlCommand の CommandTimeout プロパティを使用してオーバーライドできます。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"

ネイティブ SNI からのシンボルの削除Removal of symbols from Native SNI

Microsoft.Data.SqlClient v2.1 では、v2.0.0 で導入されたシンボルが、Microsoft.Data.SqlClient.SNI.runtime NuGet の v2.1.1 以降から削除されます。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. パブリック シンボルにアクセスする必要がある BinSkim などのツールのために、パブリック シンボルが Microsoft シンボル サーバーに発行されるようになります。The public symbols are now published to Microsoft Symbols Server for tools like BinSkim that require access to public symbols.

Microsoft.Data.SqlClient のシンボルのソース リンクSource-Linking of Microsoft.Data.SqlClient symbols

Microsoft.Data.SqlClient v2.1 以降、ソース コードをダウンロードする必要のない、強化されたデバッグ エクスペリエンスのため、Microsoft.Data.SqlClient のシンボルが Microsoft シンボル サーバーにソース リンクされて発行されます。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.

Microsoft.Data.SqlClient 2.0 のリリース ノートRelease notes for Microsoft.Data.SqlClient 2.0

リリース ノートは、GitHub リポジトリの 2.0 リリース ノート.Release notes are also available in the GitHub Repository: 2.0 Release Notes.

2.0 における重大な変更Breaking changes in 2.0

  • エンクレーブ プロバイダー インターフェイス SqlColumnEncryptionEnclaveProvider のアクセス修飾子が public から internal に変更されました。The access modifier for the enclave provider interface SqlColumnEncryptionEnclaveProvider has been changed from public to internal.
  • SqlClientMetaDataCollectionNames クラスの定数は、SQL Server の変更を反映するように更新されました。Constants in the SqlClientMetaDataCollectionNames class have been updated to reflect changes in SQL Server.
  • ターゲット SQL Server で TLS 暗号化が適用されている場合、ドライバーによってサーバー証明書の検証が実行されるようになりました。これは、Azure の接続では既定です。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() から、null ではなく空の DataTable が返されるようになりました。SqlDataReader.GetSchemaTable() now returns an empty DataTable instead null.
  • ドライバーによる小数点以下桁数の丸めの実行が、SQL Server の動作に一致するようになりました。The driver now performs decimal scale rounding to match SQL Server behavior. 下位互換性を維持するために、AppContext スイッチを使用して以前の切り捨ての動作を有効にすることができます。For backwards compatibility, the previous behavior of truncation can be enabled using an AppContext switch.
  • Microsoft.Data.SqlClient を使用する .NET Framework アプリケーションの場合、以前は bin\x64 および bin\x86 フォルダーにダウンロードされた SNI.dll ファイルが Microsoft.Data.SqlClient.SNI.x64.dll およびMicrosoft.Data.SqlClient.SNI.x86.dll という名前になり、bin ディレクトリにダウンロードされます。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.
  • SqlConnectionStringBuilder から接続文字列をフェッチするとき、一貫性を保つために、新しい接続文字列プロパティのシノニムによって古いプロパティが置き換えられます。New connection string property synonyms will replace old properties when fetching connection string from SqlConnectionStringBuilder for consistency. 詳細Read More

2.0 の新機能New features in 2.0

次の新機能は、Microsoft.Data.SqlClient 2.0 で導入されました。The following new features have been introduced in Microsoft.Data.SqlClient 2.0.

DNS エラーの回復性DNS failure resiliency

この機能をサポートする SQL Server エンドポイントへの接続が成功するたびに、ドライバーによって IP アドレスがキャッシュされます。The driver will now cache IP addresses from every successful connection to a SQL Server endpoint that supports the feature. 接続試行中に DNS 解決エラーが発生した場合、ドライバーによって、そのサーバーのキャッシュされた IP アドレス (存在する場合) を使用した接続の確立が試みられます。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 の追跡EventSource tracing

このリリースでは、アプリケーションをデバッグするためのイベント トレース ログのキャプチャに対するサポートが導入されています。This release introduces support for capturing event trace logs for debugging applications. これらのイベントをキャプチャするには、クライアント アプリケーションで SqlClient の EventSource 実装からのイベントをリッスンする必要があります。To capture these events, client applications must listen for events from SqlClient's EventSource implementation:

Microsoft.Data.SqlClient.EventSource

詳細については、SqlClient でイベントのトレースを有効にする方法を参照してください。For more information, see how to Enable event tracing in SqlClient.

Windows でのマネージド ネットワークの有効化Enabling managed networking on Windows

新しい AppContext スイッチ "Switch.Microsoft.Data.SqlClient.UseManagedNetworkingOnWindows" によって、Windows 上でテストおよびデバッグの目的のためにマネージド SNI 実装を使用できるようになります。A new AppContext switch, "Switch.Microsoft.Data.SqlClient.UseManagedNetworkingOnWindows", enables the use of a managed SNI implementation on Windows for testing and debugging purposes. このスイッチを使用すると、Windows 上で .NET Core 2.1 以降のマネージド SNI と .NET Standard 2.0 以降のプロジェクトを使用するようにドライバーの動作が切り替わり、Microsoft.Data.SqlClient ライブラリでネイティブ ライブラリのすべての依存関係が削除されます。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);

ドライバーで使用できるスイッチの完全な一覧については、「SqlClient の AppContext スイッチ」を参照してください。See AppContext Switches in SqlClient for a full list of available switches in the driver.

小数点の切り捨て動作の有効化Enabling decimal truncation behavior

小数点以下のデータ スケールは、ドライバーによって、既定では SQL Server で行われるように丸められます。The decimal data scale will be rounded by the driver by default as is done by SQL Server. 下位互換性を維持するために、AppContext スイッチ "Switch.Microsoft.Data.SqlClient.TruncateScaledDecimal"true に設定できます。For backwards compatibility, you can set the AppContext switch "Switch.Microsoft.Data.SqlClient.TruncateScaledDecimal" to true.

AppContext.SetSwitch("Switch.Microsoft.Data.SqlClient.TruncateScaledDecimal", 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. 古いプロパティ名は下位互換性のために引き続きサポートされますが、SqlConnectionStringBuilder から接続文字列をフェッチすると、新しい接続文字列プロパティが含まれるようになります。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
ApplicationIntentApplicationIntent アプリケーションの目的Application Intent
ConnectRetryCountConnectRetryCount Connect Retry CountConnect Retry Count
ConnectRetryIntervalConnectRetryInterval Connect Retry IntervalConnect Retry Interval
PoolBlockingPeriodPoolBlockingPeriod Pool Blocking PeriodPool Blocking Period
MultipleActiveResultSetsMultipleActiveResultSets Multiple Active Result SetsMultiple Active Result Sets
MultiSubnetFailoverMultiSubnetFailover Multiple Subnet FailoverMultiple Subnet Failover
TransparentNetworkIPResolutionTransparentNetworkIPResolution Transparent Network IP ResolutionTransparent Network IP Resolution
TrustServerCertificateTrustServerCertificate [Trust Server Certificate]Trust Server Certificate

SqlBulkCopy RowsCopied プロパティSqlBulkCopy RowsCopied property

RowsCopied プロパティを使用すると、実行中の一括コピー操作で処理された行の数に読み取り専用でアクセスできます。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

SqlConnection.Open() の既定の動作をオーバーライドして、一時的なエラーによってトリガーされる 10 秒の遅延と自動接続の再試行を無効にすることができます。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);

注意

このオーバーライドは、SqlConnection.Open() にのみ適用でき、SqlConnection.OpenAsync() には適用できないことにご注意ください。Note that this override can only be applied to SqlConnection.Open() and not SqlConnection.OpenAsync().

Active Directory 対話モードでのユーザー名のサポートUsername support for Active Directory Interactive mode

.NET Framework と .NET Core の両方に対して Azure Active Directory 対話型認証モードを使用する場合は、接続文字列にユーザー名を指定できます。A username can be specified in the connection string when using Azure Active Directory Interactive authentication mode for both .NET Framework and .NET Core

ユーザー ID または UID 接続文字列プロパティを使用してユーザー名を設定します。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>;"

SqlBulkCopy の順序のヒント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 依存関係の変更SNI dependency changes

Windows 上の Microsoft.Data.SqlClient (.NET Core および .NET Standard) は、Microsoft.Data.SqlClient.SNI.runtime に依存するようになりました。これにより、runtime.native.System.Data.SqlClient.SNI に対する以前の依存関係が置き換えられます。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. 新しい依存関係によって、Windows で既にサポートされているプラットフォームである ARM64、x64、x86 に加えて、ARM プラットフォームのサポートが追加されます。The new dependency adds support for the ARM platform along with the already supported platforms ARM64, x64, and x86 on Windows.

Microsoft.Data.SqlClient 1.1.0 のリリース ノートRelease notes for Microsoft.Data.SqlClient 1.1.0

リリース ノートは、GitHub リポジトリの 1.1 リリース ノートでも入手できます。Release notes are also available in the GitHub Repository: 1.1 Release Notes.

1.1 の新機能New features in 1.1

セキュア エンクレーブを使用する Always EncryptedAlways Encrypted with secure enclaves

Always Encrypted は、Microsoft SQL Server 2016 から使用できます。Always Encrypted is available starting in Microsoft SQL Server 2016. セキュリティで保護されたエンクレーブは、Microsoft SQL Server 2019 から使用できます。Secure enclaves are available starting in Microsoft SQL Server 2019. エンクレーブ機能を使用するには、必要な構成証明プロトコルと構成証明 URL が接続文字列に含まれている必要があります。To use the enclave feature, connection strings should include the required attestation protocol and attestation URL. 次に例を示します。For example:

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

詳細については、次を参照してください。For more information, see:

Microsoft.Data.SqlClient 1.0 のリリース ノートRelease notes for Microsoft.Data.SqlClient 1.0

Microsoft.Data.SqlClient 名前空間の最初のリリースでは、既存の System.Data.SqlClient 名前空間よりも多くの機能が提供されています。The initial release for the Microsoft.Data.SqlClient namespace offers more functionality over the existing System.Data.SqlClient namespace. リリース ノートは、GitHub リポジトリの 1.0 リリース ノートでも入手できます。Release notes are also available on the GitHub Repository: 1.0 Release Notes.

1.0 の新機能New features in 1.0

.NET Framework 4.7.2 System.Data.SqlClient に対する新機能New features over .NET Framework 4.7.2 System.Data.SqlClient

  • データ分類 - Azure SQL Database および Microsoft SQL Server 2019 で使用できます。Data Classification - Available in Azure SQL Database and Microsoft SQL Server 2019.

  • UTF-8 のサポート - Microsoft SQL Server 2019 で使用できます。UTF-8 support - Available in Microsoft SQL Server 2019.

.NET Core 2.2 System.Data.SqlClient に対する新機能New features over .NET Core 2.2 System.Data.SqlClient

  • データ分類 - Azure SQL Database および Microsoft SQL Server 2019 で使用できます。Data Classification - Available in Azure SQL Database and Microsoft SQL Server 2019.

  • UTF-8 のサポート - Microsoft SQL Server 2019 で使用できます。UTF-8 support - Available in Microsoft SQL Server 2019.

  • 認証 - Active Directory パスワード認証モード。Authentication - Active Directory Password authentication mode.

データ分類Data Classification

データ分類では、基になるソースでこの機能がサポートされ、データの機密性と分類に関するメタデータが含まれている場合に、SqlDataReader 経由で取得したオブジェクトに関するデータの機密性と分類に関する読み取り専用の情報を公開する新しい一連の API が提供されます。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. SqlClient でのデータ検出と分類」にあるサンプル アプリケーションを参照してください。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
    }
}

UTF-8 のサポートUTF-8 support

UTF-8 のサポートで、アプリケーション コードを変更する必要はありません。UTF-8 support doesn't require any application code changes. これらの SqlClient の変更によって、サーバーで UTF-8 がサポートされ、基になる列の照合順序が UTF-8 である場合に、クライアントとサーバーの間の通信が最適化されます。These SqlClient changes optimize client-server communication when the server supports UTF-8 and the underlying column collation is UTF-8. SQL Server 2019 の新機能の UTF-8 のセクションを参照してください。See the UTF-8 section under What's new in SQL Server 2019.

セキュリティで保護されたエンクレーブが設定された Always Encrypted:Always encrypted with secure enclaves

一般に、.NET Framework で System.Data.SqlClient および組み込み列マスター キー ストア プロバイダー を使用する既存のドキュメントも .NET Core で動作するようになりました。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.

Always Encrypted と .NET Framework Data Provider を使用して開発するDevelop using Always Encrypted with .NET Framework Data Provider

Always Encrypted:Windows 証明書ストアで機密データを保護し、暗号化キーを格納するAlways Encrypted: Protect sensitive data and store encryption keys in the Windows certificate store

認証Authentication

[認証] 接続文字列オプションを使用して、さまざまな認証モードを指定できます。Different authentication modes can be specified by using the Authentication connection string option. 詳細については、SqlAuthenticationMethod のドキュメントを参照してください。For more information, see the documentation for SqlAuthenticationMethod.

注意

Azure Key Vault プロバイダーなどのカスタム キー ストア プロバイダーは、Microsoft.Data.SqlClient をサポートするように更新する必要があります。Custom key store providers, like the Azure Key Vault provider, will need to be updated to support Microsoft.Data.SqlClient. 同様に、エンクレーブ プロバイダーも Microsoft.Data.SqlClient をサポートするように更新する必要があります。Similarly, enclave providers will also need to be updated to support Microsoft.Data.SqlClient. Always Encrypted は、.NET Framework および .NET Core ターゲットに対してのみサポートされます。Always Encrypted is only supported against .NET Framework and .NET Core targets. .NET Standard には特定の暗号化依存関係がないため、.NET Standard に対してはサポートされません。It is not supported against .NET Standard since .NET Standard is missing certain encryption dependencies.