为什么 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 authentication
或 SQL 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.
我是 运行 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 authentication
或 SQL 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.