如果連接字符串指定Trusted_Connection=true
與SQL Server身份驗證模式,我的Web應用程序的性能是否會受到影響?使用Trusted_Connection = true和SQL Server身份驗證時,會影響性能嗎?
回答
不是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身份驗證模式。
如果有任何的這兩個設置存在(Trusted_Connection=true
或Integrated 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身份驗證模式將被使用),你
這可能會產生一些性能成本創建連接時,但作爲連接池,它們僅創建一次,然後再利用,所以它不會對您的應用程序的任何差異。但一如既往:衡量它。
UPDATE:
有兩種驗證方式:
- Windows身份驗證模式(對應於受信任的連接)。客戶需要成爲域的成員。
- SQL Server身份驗證模式。客戶在每個連接發送的用戶名/密碼,
您的意思是當第一次建立與SQL Server的連接時,會有額外的性能成本?爲什麼? (我以前的理解是可信連接將提高性能,因爲它是「可信」的 - 可以通過繞過一些認證成本來節省時間)。糾正我,如果我錯了。 – George2 2009-10-29 09:24:39
是的,但爲了成爲「值得信賴」,需要在客戶端和服務器之間進行多次交換。建立SSPI握手將比發送用戶名/密碼的單向往返慢。 – 2009-10-29 09:29:16
另外還有一個額外的費用查詢Active Directory。 – 2009-10-29 09:30:32
當您使用可信連接時,用戶名和密碼是IGNORED,因爲SQL Server使用Windows身份驗證。
你的意思是如果我使用Windows身份驗證以外的SQL Server身份驗證,我不能使用Trusted_Connection = true? – George2 2009-10-29 09:30:38
如果您使用可信連接Sql Server不關心連接字符串中提供的用戶標識和密碼。 Sql Server使用當前進程的憑證。如果您想使用Sql Server身份驗證,則必須從連接字符串中刪除可信連接 – Tror 2009-10-29 09:39:16
謝謝!如果我不在基於活動目錄的環境中,是否可以使用Trusted_connection = true? – George2 2009-10-29 09:43:50
如果您的Web應用程序配置爲模擬客戶端,那麼使用可信連接可能會對性能產生負面影響。這是因爲每個客戶端都必須使用不同的連接池(以及客戶端憑證)。
大多數Web應用程序不使用模擬/委託,因此不存在此問題。
查看this MSDN article瞭解更多信息。
- 1. 使用SQL Server身份驗證代替Windows身份驗證的PDO和SQL Server
- 2. 更改SQL Server身份驗證的影響是什麼?
- 3. 是SQL Server身份驗證和Windows身份驗證
- 4. SQL Server LDAP身份驗證
- 5. SQL Server身份驗證
- 6. 使用Windows身份驗證的SQL Server
- 7. SQL Server 2008 Express和Windows身份驗證
- 8. C#和SQL Server身份驗證
- 9. 集成Windows身份驗證到SQL Server
- 10. 檢查身份驗證票證到期而不會影響它
- 11. SSPI和SQL Server Windows身份驗證
- 12. 網站窗體身份驗證 - > SQL Server Windows身份驗證
- 13. SQL Server身份驗證或Windows身份驗證
- 14. Windows身份驗證到SQL Server身份驗證
- 15. 從Windows更改爲SQL Server身份驗證可能嗎?
- 16. 添加登錄和連接使用SQL Server身份驗證SQL
- 17. SQL Server 2008:我應該使用Windows身份驗證還是使用SQL Server身份驗證?
- 18. 使用jaxb XMLAdapter會影響性能嗎?
- 19. NSClassFromString會影響性能嗎?
- 20. 無法在SQL Server Express 2008中使用SQL Server身份驗證
- 21. 爲asp.net應用程序連接sql server(Windows身份驗證與SQL Server身份驗證)的最佳方式
- 22. SQL Server會話數據和窗體身份驗證
- 23. CakePHP SQL Server Windows身份驗證
- 24. SQL Server Windows身份驗證安全
- 25. SQL Server集成身份驗證模式
- 26. ASP.NET SQL Server數據庫身份驗證
- 27. 如何將SQL Server 2005從Windows身份驗證更改爲SQL身份驗證?
- 28. sql server 2005 Windows身份驗證權限
- 29. SQL Server Reporting Services ReportViewer身份驗證
- 30. SQL Server身份驗證登錄問題
你的意思是如果我使用Windows身份驗證以外的Windows身份驗證,我不能使用Trusted_Connection = true? – George2 2009-10-29 09:32:12
對不起,我的意思是如果我想使用Trusted_connection = true,那麼我必須使用Windows身份驗證模式?我可以在Trusted_connection = true的情況下使用SQL Server身份驗證模式嗎? – George2 2009-10-29 09:41:29
Marc,我想和你確認一下,1.如果我使用的是SQL Server authenticaton模式,那麼我不能使用Trusted_connection = true,2.如果我使用的是Windows身份驗證模式,那麼我可以選擇使用Trusted_connection = true或不? – George2 2009-10-29 09:56:11