繁体   English   中英

无法从 C# 使用 Windows 身份验证连接到 SQL Server

[英]Cannot connect to SQL Server with Windows authentication from C#

我想使用 Windows 身份验证连接到 SQL Server 2016。

我正在使用带有此连接字符串的 C#

Server=192.168.1.12,14331;Database=master;Integrated Security=true;Timeout=30

或者

Server=serversql\newinstance;Database=master;Integrated Security=true;Timeout=30

错误是连接超时。

当像这样使用 SQL Server 身份验证连接时:

Server=192.168.1.12,14331;Database=master;User Id=***;Password=****;Timeout=30

一切都好。

源代码 C#

var constr = "<connection string>";

using (var connection = new SqlConnection(constr))
{
    var command = connection.CreateCommand();
    command.CommandType = CommandType.Text;
    command.CommandText = "SELECT 1";
    command.CommandTimeout = 0;

    connection.Open();
    command.ExecuteNonQuery();
}

但是当我使用 SQL Server Management Studio 通过 Windows 身份验证检查与 SQL Server 实例的连接时,就可以了。 使用别名或 IP 地址对错误没有帮助。

我不明白为什么我会收到这个错误......

请帮帮我! 谢谢大家!

更新:如果我使用带有 IP 和端口的连接 1,则会出现错误:

登录失败。 登录名来自不受信任的域,不能用于 Windows

更新:实例 SQL 安装在与我的 PC 相同的网络 LAN 上的其他 PC 上。 我在 PC 安装实例 SQL 上检查了日志查看器,但没有记录日志。

我不确定它是否适合你,但你可以试试:

SqlConnection cnn;
public connect(){
    string strConnect = @"Data Source=192.168.1.12,14331;Network Library=DBMSSOCN;Initial Catalog=master;User ID=****;Password=*****";
    cnn = new SqlConnection(strConnect);
    try
    {
        cnn.Open();
    }
    catch(Exception)
    {
        // connect failed
    }
}
public void ExeQuery(string query){
    // query="select * from tblA"
    SqlCommand sqlCmd = new SqlCommand(query,cnn);
    sqlCmd.ExecuteNonQuery();
    sql.Dispose();
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM