在我不同的 Web 应用程序中,我使用了两种方法,但是,我想了解哪种方法更好:
1: server=localhost;database=x; integrated security=SSPI;persist security info=False; Trusted_Connection=Yes;
2: server=localhost;database=x;uid=sa;pwd=y;
在我的 Web 应用程序中,对于每个数据库查询,我打开一个连接,然后关闭该连接。
所以我几乎使用常规样式,例如:
using (SqlConnection connection = new SqlConnection(srConnectionString))
{
connection.Open();
using (SqlDataAdapter DA = new SqlDataAdapter(strQuery, connection))
{
DA.Fill(dSet);
}
}
您可以放心地假设在任何给定的秒内都有数百甚至数千个查询。
我的问题:
2 种身份验证方法之间在性能方面是否存在差异?
两种身份验证方法之间是否存在安全差异?
我不允许远程连接到 SQL Server。所以只允许本地连接。
操作系统 Windows Server 2019
安全差异
您可以在Connecting Through Windows Authentication文档中找到它:
性能差异
这两种方法之间现有的性能差异不足以建议您选择 SQL Server 身份验证而不是 Windows 身份验证来获得任何性能改进,但会损害安全性。因此,如果您可以选择使用 Windows 身份验证,请使用它。
正如JD的评论所说,存储凭据不是最安全的选择,甚至 Windows 身份验证的性能劣势也通过Dan Guzman提到的SQL Server 连接池得到缓解。他还补充说: