C# 使用Trusted_Connection=true和SQL Server身份验证时,这会影响性能吗?

C# 使用Trusted_Connection=true和SQL Server身份验证时,这会影响性能吗?,c#,.net,asp.net,sql-server-2005,ado.net,C#,.net,Asp.net,Sql Server 2005,Ado.net,如果连接字符串使用SQL Server身份验证模式指定Trusted\u connection=true,我的web应用程序的性能会受到影响吗 在创建连接时,这可能会带来一些性能成本,但由于连接是池式的,因此它们只创建一次,然后再重新使用,因此不会对应用程序产生任何影响。但一如往常:测量它 更新: 有两种身份验证模式: Windows身份验证模式(对应于可信连接)。客户端需要是域的成员 SQL Server身份验证模式。客户端在每个连接处发送用户名/密码 不是100%确定你的意思: Trust

如果连接字符串使用SQL Server身份验证模式指定
Trusted\u connection=true
,我的web应用程序的性能会受到影响吗

在创建连接时,这可能会带来一些性能成本,但由于连接是池式的,因此它们只创建一次,然后再重新使用,因此不会对应用程序产生任何影响。但一如往常:测量它


更新:

有两种身份验证模式:

  • Windows身份验证模式(对应于可信连接)。客户端需要是域的成员
  • SQL Server身份验证模式。客户端在每个连接处发送用户名/密码

  • 不是100%确定你的意思:

    Trusted_Connection=True;
    
    使用Windows凭据,100%等同于:

    Integrated Security=SSPI;
    

    如果不想使用集成安全性/受信任连接,则需要在连接字符串中明确指定用户id和密码(并省略对
    受信任连接
    集成安全性
    的任何引用)

    只有在这种情况下,才会使用SQL Server身份验证模式

    如果存在这两个设置中的任何一个(
    Trusted\u Connection=true
    Integrated Security=true/SSPI
    ),则当前用户的Windows凭据将用于对SQL Server进行身份验证,并且任何
    用户iD=
    设置都将被忽略,而不会使用

    有关参考信息,请参阅针对SQL Server 2005的示例和说明

    使用Windows身份验证是首选和推荐的操作方式,但它可能会引起轻微延迟,因为SQL Server必须根据Active Directory(通常)对您的凭据进行身份验证。我不知道这小小的延迟会有多大,我也没有找到任何相关的参考资料


    总结:


    如果指定
    Trusted\u Connection=True或<代码>集成安全=SSPI
    集成安全=真在您的连接字符串中

    ==>然后(并且只有那时)您才有Windows身份验证。将忽略连接字符串中的任何
    用户id=
    设置


    如果未指定这些设置之一

    ==>那么您没有进行Windows身份验证(将使用SQL身份验证模式)



    使用受信任的连接时,用户名和密码将被忽略,因为SQL Server使用windows身份验证。

    如果您的web应用程序配置为模拟客户端,则使用受信任的连接可能会对性能产生负面影响。这是因为每个客户端必须使用不同的连接池(带有客户端的凭据)

    大多数web应用程序不使用模拟/委派,因此不存在此问题


    有关详细信息,请参阅。

    您的意思是,首次建立与SQL Server的连接时,会增加性能成本?为什么?(我之前的理解是,可信连接将提高性能,因为它是“可信的”——可以通过绕过一些身份验证成本来节省时间)。如果我错了,请纠正我。是的,但要想成为受信任的客户机和服务器之间需要进行多次交换。建立SSPI握手将比发送用户名/密码的单程往返慢。查询Active Directory还需要额外的成本。
    Trusted\u Connection=True
    表示Windows身份验证。Windows身份验证表示Active Directory。您的意思是,如果我使用的是SQL Server身份验证而不是Windows身份验证,我就不能使用Trusted_Connection=true?如果您使用的是Trusted Connection,SQL Server不关心连接字符串中提供的用户名和密码。Sql Server使用当前进程的凭据。如果要使用Sql Server身份验证,必须从连接中删除受信任的连接谢谢!如果我不在基于active directory的环境中,是否可以使用Trusted_connection=true?您不能将Trusted connection与Sql Server身份验证一起使用。它们是相互排斥的。AD、本地用户帐户或家庭组之间没有区别。您的意思是如果我使用的是SQL Server身份验证而不是Windows身份验证,我不能使用Trusted_Connection=true?对不起,我的意思是如果我要使用Trusted_Connection=true,那么我必须使用Windows身份验证模式?我可以在Trusted_connection=true的情况下使用SQL Server身份验证模式吗?Marc,我想与您确认,1。如果使用的是SQL Server authenticaton模式,则无法使用Trusted_connection=true,2。如果我使用的是Windows身份验证模式,那么我可以选择使用Trusted_connection=true或not?1.)是,2.)否-Trusted_connection=true表示Windows身份验证,Windows身份验证要求Trusted_connection=true。如果您指定“trusted_connection=True”=>您拥有Windows身份验证;如果未指定,则没有Windows身份验证您的意思是如果使用Windows身份验证,则必须使用trusted_connection=True吗?我之所以感到困惑,是因为我在我的一个项目中使用Windows身份验证,并且我没有同时指定trusted_connection=True::-)
    Integrated Security=true;
    
    server=yourservername;database=yourdatabase;user id=YourUser;pwd=TopSecret