2009-10-29 65 views

回答

95

不是100%肯定你的意思:

Trusted_Connection=True; 

IS使用Windows憑據和100%等同於:

Integrated Security=SSPI; 

Integrated Security=true; 

如果你不希望使用集成的安全/受信任的連接,需要在連接字符串中明確指定用戶ID和密碼(和遺漏任何參考Trusted_ConnectionIntegrated Security

server=yourservername;database=yourdatabase;user id=YourUser;pwd=TopSecret 

只有在這種情況下, ,則使用SQL Server身份驗證模式。

如果有任何的這兩個設置存在(Trusted_Connection=trueIntegrated Security=true/SSPI),那麼Windows憑據當前用戶的用於對SQL Server身份驗證,任何user iD=設置將被忽略,而不是使用

僅供參考,請參閱Connection Strings site爲SQL Server 2005,有很多實例和解釋的。

使用Windows身份驗證是做事的首選和推薦的方式,但它可能招致輕微的延遲,因爲SQL服務器必須驗證您對Active Directory(典型值)的憑據。我不知道這種輕微的延遲可能會有多少,我還沒有找到任何參考。


總結:

如果您在連接字符串中指定任何Trusted_Connection=True;Integrated Security=SSPI;Integrated Security=true;

==>THEN(然後只),你有Windows身份驗證發生。連接字符串中的任何user id=設置將被忽略


如果不要請指定的那些設置,

==>然後不要有Windows身份驗證發生(SQL身份驗證模式將被使用),你


+0

你的意思是如果我使用Windows身份驗證以外的Windows身份驗證,我不能使用Trusted_Connection = true? – George2 2009-10-29 09:32:12

+0

對不起,我的意思是如果我想使用Trusted_connection = true,那麼我必須使用Windows身份驗證模式?我可以在Trusted_connection = true的情況下使用SQL Server身份驗證模式嗎? – George2 2009-10-29 09:41:29

+0

Marc,我想和你確認一下,1.如果我使用的是SQL Server authenticaton模式,那麼我不能使用Trusted_connection = true,2.如果我使用的是Windows身份驗證模式,那麼我可以選擇使用Trusted_connection = true或不? – George2 2009-10-29 09:56:11

4

這可能會產生一些性能成本創建連接時,但作爲連接池,它們僅創建一次,然後再利用,所以它不會對您的應用程序的任何差異。但一如既往:衡量它。


UPDATE:

有兩種驗證方式:

  1. Windows身份驗證模式(對應於受信任的連接)。客戶需要成爲域的成員。
  2. SQL Server身份驗證模式。客戶在每個連接發送的用戶名/密碼,
+0

您的意思是當第一次建立與SQL Server的連接時,會有額外的性能成本?爲什麼? (我以前的理解是可信連接將提高性能,因爲它是「可信」的 - 可以通過繞過一些認證成本來節省時間)。糾正我,如果我錯了。 – George2 2009-10-29 09:24:39

+2

是的,但爲了成爲「值得信賴」,需要在客戶端和服務器之間進行多次交換。建立SSPI握手將比發送用戶名/密碼的單向往返慢。 – 2009-10-29 09:29:16

+2

另外還有一個額外的費用查詢Active Directory。 – 2009-10-29 09:30:32

7

當您使用可信連接時,用戶名和密碼是IGNORED,因爲SQL Server使用Windows身份驗證。

+0

你的意思是如果我使用Windows身份驗證以外的SQL Server身份驗證,我不能使用Trusted_Connection = true? – George2 2009-10-29 09:30:38

+1

如果您使用可信連接Sql Server不關心連接字符串中提供的用戶標識和密碼。 Sql Server使用當前進程的憑證。如果您想使用Sql Server身份驗證,則必須從連接字符串中刪除可信連接 – Tror 2009-10-29 09:39:16

+0

謝謝!如果我不在基於活動目錄的環境中,是否可以使用Trusted_connection = true? – George2 2009-10-29 09:43:50

1

如果您的Web應用程序配置爲模擬客戶端,那麼使用可信連接可能會對性能產生負面影響。這是因爲每個客戶端都必須使用不同的連接池(以及客戶端憑證)。

大多數Web應用程序不使用模擬/委託,因此不存在此問題。

查看this MSDN article瞭解更多信息。

相關問題