web-dev-qa-db-ja.com

Trusted_Connection = trueおよびSQL Server認証を使用する場合、これはパフォーマンスに影響しますか?

接続文字列でTrusted_Connection=trueがSQL Server認証モードで指定されている場合、Webアプリケーションのパフォーマンスに影響がありますか?

46
George2

あなたが何を意味するのか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認証モードが使用されます)


127
marc_s

信頼できる接続を使用する場合、SQL ServerはWindows認証を使用するため、ユーザー名とパスワードは無視されます。

8
Tror

これはおそらく、接続の作成時にパフォーマンスにいくらかのコストがかかりますが、接続がプールされると、接続は一度だけ作成されて再利用されるため、アプリケーションに影響はありません。しかし、いつものように:それを測定します。


更新:

次の2つの認証モードがあります。

  1. Windows認証モード(信頼できる接続に対応)。クライアントはドメインのメンバーである必要があります。
  2. SQL Server認証モード。クライアントは各接続でユーザー名/パスワードを送信しています
4
Darin Dimitrov

Webアプリケーションがクライアントを偽装するように構成されている場合、信頼できる接続を使用すると、パフォーマンスが低下する可能性があります。これは、各クライアントが(クライアントの資格情報を使用して)異なる接続プールを使用する必要があるためです。

ほとんどのWebアプリケーションは偽装/委任を使用しないため、この問題は発生しません。

詳細については、 このMSDN記事 を参照してください。

1
Joe