2009-10-29 8 views

答えて

95

でユーザー名/パスワードを送信しているあなたは何を意味するかわからない100%:

Trusted_Connection=True; 

は、Windows資格情報を使用して ISと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=設定は無視され、 は使用されません。

参考までに、多くのサンプルと説明を含むSQL Server 2005のConnection Strings siteを参照してください。

Windows認証を使用することが推奨されていますが、SQL ServerがActive Directory(通常)に対して資格情報を認証する必要があるため、わずかな遅延が発生する可能性があります。私はそのわずかな遅延がどれほどのものか分かりません。


総括:

はあなたの接続文字列のいずれかでTrusted_Connection=True;またはIntegrated Security=SSPI;またはIntegrated Security=true;を指定した場合

==>THEN(だけにして)あなたが持っているWindows認証ハプニング。接続文字列のいずれかのuser id=の設定は無視されます


これらの設定のいずれかを指定しないであなたは場合は、

==>あなたはは、Windows認証が起こっ(SQL認証モードが使用されます)がありません


+0

Windows認証以外のSQL Server認証を使用している場合は、Trusted_Connection = trueを使用できませんか? – George2

+0

申し訳ありませんが、Trusted_connection = trueを使用する場合、Windows認証モードを使用する必要がありますか? Trusted_connection = trueでSQL Server認証モードを使用できますか? – George2

+0

Marc、私はあなたにそれを確認したいと思います:1.私がSQL Server認証モードを使用している場合、私はTrusted_connection = trueを使用できません。2. Windows認証モードを使用している場合は、Trusted_connection = trueか否か? – George2

4

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


UPDATE:(信頼関係接続に相当)

  1. Windows認証モード:

    の2つの認証モードがあります。クライアントはドメインのメンバーである必要があります。

  2. SQL Server認証モード。クライアントは、各接続
+0

初めてSQL Serverへの接続を確立すると、追加のパフォーマンスコストがかかりますか?なぜ? (私の以前の理解は、信頼できる接続は「信頼できる」ので、パフォーマンスを向上させるでしょう - 認証コストをバイパスすることで時間を節約することができます)。私が間違っているなら、私を訂正してください。 – George2

+2

はい、しかし、信頼できるものになるためには、クライアントとサーバーの間でやり取りが必要ないくつかの交換があります。 SSPIハンドシェイクを確立することは、1回の往復送信ユーザ名/パスワードよりも遅くなります。 –

+2

また、Active Directoryに問い合わせる追加コストもあります。 –

7

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

+0

Windows認証以外のSQL Server認証を使用している場合は、Trusted_Connection = trueを使用できませんか? – George2

+1

信頼された接続を使用している場合Sql Serverは、接続文字列で指定されたユーザーIDとパスワードを気にしません。 SQL Serverは現在のプロセスの資格情報を使用します。 SQL Server認証を使用する場合は、接続文字列からトラステッド接続を削除する必要があります – Tror

+0

ありがとう!アクティブディレクトリベースの環境にいない場合、Trusted_connection = trueを使用できますか? – George2

1

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

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

詳細については、this MSDN articleを参照してください。

関連する問題