为什么 ADO.NET 仍然连接到错误用户的 SQL 服务器?

Why ADO.NET still connected to SQL Server with wrong user?

我是 运行 Microsoft SQL Server 2014。 我尝试在 C# 应用程序中使用 ADO.NET 连接到 SQL 服务器。 我的连接字符串是:

var myConnection = new SqlConnection("Data
 Source=VIRTUAL-ADMIN\SQLEXPRESS;" +
                 "Integrated Security=SSPI;" +
                 "Initial Catalog=StudentManagement;"+
                 "User id=...;"+
                "Password=...");

我的初始目录是一个正确且存在的数据库。 但是我的用户名是错误的用户名! 我输入的密码也已经错了。 但是 ADO.NET 仍然连接到我的数据库,我可以执行查询并使用我的数据库执行所有操作。 我该如何解决?

您提供了 Integrated Security=SSPI; 以及用户名和密码,因此默认情况下需要 integrated Security 即 windows 身份验证,因此您也可以使用错误的凭据进行连接。

因此,当连接到 SSMS 时,当它要求 Windows authenticationSQL Server authentication

时,用户 Integrated Security 或您的凭据

来自 MSDN:-

Integrated Security When false, User ID and Password are specified in the connection. When true, the current Windows account credentials are used for authentication.