OLE DB Provider for SQL Server のドライバー対応接続プール
ODBC Driver for SQL Server は、ドライバー対応の接続プールをサポートしています。 この記事では、Windows 上の Microsoft ODBC Driver for SQL Server のドライバー対応接続プールに対して行われた機能強化について説明します。
接続プロパティが何であれ、
SQLDriverConnect
を使用する接続は、SQLConnect
を使用する接続とは別のプールに移動されます。SQL Server 認証とドライバー対応接続プールを使用する場合、ドライバーでは、プール内の接続を分離するために、現在のスレッドの Windows ユーザーのセキュリティ コンテキストが使用されません。 つまり、SQL Server 認証での Windows での権限借用シナリオでの接続と、接続パラメーターが同じで、バックエンドとの接続に同じ SQL Server 認証資格証明を使用する場合、別の Windows ユーザーが同じプール接続を使用できる可能性があります。 Windows 認証とドライバー対応接続プールを使用する場合、ドライバーでは、プール内の接続を分離するために現在の Windows ユーザーのセキュリティ コンテキストが使用されます。 つまり、Windows での権限借用のシナリオでは、接続で同じパラメーターを使用していても、別の Windows ユーザーは同じ接続を使用しません。
Microsoft Entra ID (旧称 Azure Active Directory) とドライバー対応接続プールを使用する場合、ドライバーでは、認証値を使用して、接続プールのメンバーシップも決定されます。
ドライバー対応接続プールは、無効な接続がプールから返されないようにします。
ドライバー対応接続プールは、ドライバーに固有の接続属性を認識します。 そのため、接続で読み取り専用に設定された
SQL_COPT_SS_APPLICATION_INTENT
を使用する場合、その接続では独自の接続プールが取得されます。SQL_COPT_SS_ACCESS_TOKEN
属性を設定すると、接続が個別にプールされます
次のいずれかの接続属性 ID または接続文字列キーワードが、接続文字列と、プールされた接続文字列の間で異なる場合、ドライバーはプールされた接続を使用します。 ただし、すべての接続属性 ID または接続文字列キーワードが一致する場合、パフォーマンスは向上します。 (プール内の接続を一致させるには、ドライバーで属性をリセットします。) 次のパラメーターをリセットするには追加のネットワーク呼び出しが必要になるため、パフォーマンスが低下します。
次の接続属性または接続キーワードのうち 2 つ以上が異なる場合、プールされた接続は使用されません。
Language
QuoteId
SQL_ATTR_TXN_ISOLATION
SQL_COPT_SS_QUOTED_IDENT
接続文字列とプールされた接続文字列の次のいずれかの接続キーワードの間に違いがある場合、プールされた接続は使用されません。
Keyword ODBC ドライバー 13 以降 ODBC ドライバー 11 Address
はい イエス AnsiNPW
イエス イエス App
イエス イエス ApplicationIntent
イエス イエス Authentication
はい いいえ ColumnEncryption
有効 いいえ Database
イエス イエス Encrypt
イエス イエス Failover_Partner
イエス イエス FailoverPartnerSPN
イエス イエス MARS_Connection
イエス イエス Network
イエス イエス PWD
イエス イエス Server
イエス イエス ServerSPN
イエス イエス TransparentNetworkIPResolution
イエス イエス Trusted_Connection
イエス イエス TrustServerCertificate
イエス イエス UID
イエス イエス WSID
イエス はい 接続文字列とプールされた接続文字列の次のいずれかの接続属性の間に違いがある場合、プールされた接続は使用されません。
属性 ODBC ドライバー 13 以降 ODBC ドライバー 11 SQL_ATTR_CURRENT_CATALOG
はい イエス SQL_ATTR_PACKET_SIZE
イエス イエス SQL_COPT_SS_ANSI_NPW
イエス イエス SQL_COPT_SS_ACCESS_TOKEN
はい いいえ SQL_COPT_SS_AUTHENTICATION
有効 いいえ SQL_COPT_SS_ATTACHDBFILENAME
イエス イエス SQL_COPT_SS_BCP
イエス イエス SQL_COPT_SS_COLUMN_ENCRYPTION
はい いいえ SQL_COPT_SS_CONCAT_NULL
イエス イエス SQL_COPT_SS_ENCRYPT
イエス イエス SQL_COPT_SS_FAILOVER_PARTNER
イエス イエス SQL_COPT_SS_FAILOVER_PARTNER_SPN
イエス イエス SQL_COPT_SS_INTEGRATED_SECURITY
イエス イエス SQL_COPT_SS_MARS_ENABLED
イエス イエス SQL_COPT_SS_OLDPWD
イエス イエス SQL_COPT_SS_SERVER_SPN
イエス イエス SQL_COPT_SS_TRUST_SERVER_CERTIFICATE
イエス イエス SSPROP_AUTH_REPL_SERVER_NAME
イエス イエス SQL_COPT_SS_TNIR
はい いいえ ドライバーは追加でネットワーク呼び出しを行うことなく、次の接続キーワードと属性をリセットおよび調整できます。 接続に誤った情報が決して含まれないようにするために、ドライバーによってこれらのパラメーターはリセットされます。
これらの接続キーワードは、ドライバー マネージャーによってプール内の接続とユーザーの接続を一致させる試みが行われる場合は考慮されません (これらのパラメーターのいずれかを変更した場合でも、既存の接続を再利用できます。必要に応じてドライバーによってオプションがリセットされます)。これらの属性は、追加でネットワーク呼び出しを行わずに、クライアント側でリセットできます。
Keyword ODBC ドライバー 13 以降 ODBC ドライバー 11 AutoTranslate
はい イエス Description
イエス イエス MultisubnetFailover
イエス イエス QueryLog_On
イエス イエス QueryLogFile
イエス イエス QueryLogTime
イエス イエス Regional
イエス イエス StatsLog_On
イエス イエス StatsLogFile
イエス はい 次のいずれかの接続属性を変更した場合、既存の接続を再利用できます。 必要に応じて、ドライバーによって値がリセットされます。 ドライバーは追加のネットワーク呼び出しを行うことなく、クライアントでこれらの属性をリセットできます。
属性 ODBC ドライバー 13 以降 ODBC ドライバー 11 すべてのステートメント属性 はい イエス SQL_ATTR_AUTOCOMMIT
イエス イエス SQL_ATTR_CONNECTION_TIMEOUT
イエス イエス SQL_ATTR_DISCONNECT_BEHAVIOR SQL_ATTR_CONNECTION_TIMEOUT
イエス イエス SQL_ATTR_LOGIN_TIMEOUT
イエス イエス SQL_ATTR_ODBC_CURSORS
イエス イエス SQL_COPT_SS_PERF_DATA
イエス イエス SQL_COPT_SS_PERF_DATA_LOG
イエス イエス SQL_COPT_SS_PERF_DATA_LOG_NOW
イエス イエス SQL_COPT_SS_PERF_QUERY
イエス イエス SQL_COPT_SS_PERF_QUERY_INTERVAL
イエス イエス SQL_COPT_SS_PERF_QUERY_LOG
イエス イエス SQL_COPT_SS_PRESERVE_CURSORS
イエス イエス SQL_COPT_SS_TRANSLATE
イエス イエス SQL_COPT_SS_USER_DATA
イエス イエス SQL_COPT_SS_WARN_ON_CP_ERROR
イエス はい