如果连接字符串使用SQL Server身份验证模式指定Trusted_Connection=true
,我的Web应用程序的性能是否会受到影响?
答案 0 :(得分:120)
不是100%肯定你的意思:
Trusted_Connection=True;
使用Windows凭据IS 并且100%相当于:
Integrated Security=SSPI;
或
Integrated Security=true;
如果您不想使用集成安全性/可信连接,则需要在连接字符串中明确指定用户ID和密码(并忽略对Trusted_Connection
或Integrated Security
的任何引用)< / p>
server=yourservername;database=yourdatabase;user id=YourUser;pwd=TopSecret
仅在这种情况下,使用SQL Server身份验证模式。
如果存在这两个设置中的任何一个(Trusted_Connection=true
或Integrated Security=true/SSPI
),则使用当前用户的 Windows凭据对SQL Server和任何{进行身份验证{1}}设置将被忽略且不使用。
有关参考,请参阅SQL Server 2005的Connection Strings site,其中包含大量示例和说明。
使用Windows身份验证是首选和推荐的处理方式,但由于SQL Server必须针对Active Directory(通常)对您的凭据进行身份验证,因此可能会稍有延迟。我不知道这可能会有多少延迟,而且我没有找到任何参考资料。
总结:
如果您在连接字符串中指定user iD=
或Trusted_Connection=True;
或Integrated Security=SSPI;
==&GT; 然后(并且只有这样)您发生 Windows身份验证。连接字符串中的任何Integrated Security=true;
设置都将被忽略。
如果您不要指定其中任何一项设置,
==&GT;然后你不要发生Windows身份验证(将使用SQL身份验证模式)
答案 1 :(得分:8)
当您使用受信任的连接时,用户名和密码是IGNORED,因为SQL Server使用Windows身份验证。
答案 2 :(得分:4)
创建连接时可能会有一些性能成本,但是当连接池化时,它们只创建一次然后重复使用,因此它对您的应用程序没有任何影响。但一如既往:衡量它。
更新:
有两种身份验证模式:
答案 3 :(得分:1)
如果您的Web应用程序配置为模拟客户端,则使用可信连接可能会对性能产生负面影响。这是因为每个客户端必须使用不同的连接池(使用客户端的凭据)。
大多数Web应用程序不使用模拟/委派,因此没有此问题。
有关详细信息,请参阅this MSDN article。