接続文字列でTrusted_Connection=true
がSQL Server認証モードで指定されている場合、Webアプリケーションのパフォーマンスに影響がありますか?
あなたが何を意味するのか100%わからない:
Trusted_Connection=True;
[〜#〜] is [〜#〜]Windowsクレデンシャルを使用し、以下と100%同等です。
Integrated Security=SSPI;
または
Integrated Security=true;
統合セキュリティ/信頼できる接続を使用したくない場合は、接続文字列でユーザーIDとパスワードを明示的に指定する必要があります(Trusted_Connection
またはIntegrated Security
への参照は省略します)
server=yourservername;database=yourdatabase;user id=YourUser;pwd=TopSecret
この場合にのみ、SQL Server認証モードが使用されます。
これら2つの設定のいずれかが存在する場合(Trusted_Connection=true
またはIntegrated Security=true/SSPI
)、現在のユーザーのWindows資格情報が使用されますSQL Serverに対して認証するには、user iD=
設定は無視され、notが使用されます。
参照については、SQL Server 2005の 接続文字列サイト を参照して、多くのサンプルと説明を参照してください。
Windows認証の使用は推奨される推奨方法ですが、SQL Serverは(通常)Active Directoryに対して資格情報を認証する必要があるため、わずかな遅延が発生する可能性があります。私はそのわずかな遅延がどれだけあるかわからず、そのための参照も見つけていません。
合計:
接続文字列でTrusted_Connection=True;
またはIntegrated Security=SSPI;
またはIntegrated Security=true;
のいずれかを指定した場合
==>[〜#〜] then [〜#〜](そしてその後のみ)あなたはWindows認証起こっています。接続文字列のuser id=
設定は無視されます。
これらの設定のいずれかを指定しない場合、
==>その後、あなたはしないでくださいWindows認証が発生します(SQL認証モードが使用されます)
信頼できる接続を使用する場合、SQL ServerはWindows認証を使用するため、ユーザー名とパスワードは無視されます。
これはおそらく、接続の作成時にパフォーマンスにいくらかのコストがかかりますが、接続がプールされると、接続は一度だけ作成されて再利用されるため、アプリケーションに影響はありません。しかし、いつものように:それを測定します。
更新:
次の2つの認証モードがあります。
Webアプリケーションがクライアントを偽装するように構成されている場合、信頼できる接続を使用すると、パフォーマンスが低下する可能性があります。これは、各クライアントが(クライアントの資格情報を使用して)異なる接続プールを使用する必要があるためです。
ほとんどのWebアプリケーションは偽装/委任を使用しないため、この問題は発生しません。
詳細については、 このMSDN記事 を参照してください。