【问题标题】:ConnectionString for remote SQL Server远程 SQL Server 的 ConnectionString
【发布时间】:2015-05-04 12:33:36
【问题描述】:

是这种情况,我想连接到位于远程服务器上的 SQL2008R2,我可以远程进入服务器,然后在 Windows 上以管理员身份登录 我在 SQL 上工作服务器 MS(与 SQL 的连接是通过 Windows 身份验证)。

我正在开发一个需要与 SQL 连接的 WinForms 应用程序,我尝试了几个 connectionString 都没有成功,例如:

public static string strCon = @"Server=190.xxx.xxx.xxx\ServerName,1433;Database=DataBaseName;Integrated Security=false;User ID=User;Password=Pass";

public static string strCon = @"Data Source=190.xxx.xxx.xxx\ServerName,1433;Network Library=DBMSSOCN;Initial Catalog=DataBaseName;User ID=User;Password=Pass;

我错过了什么吗?在尝试连接之前,我是否应该执行其他操作?

我觉得windows认证的东西有点乱,我可以绕过它直接连接到SQL吗?

请注意,服务器上启用了远程连接,我检查了端口是 1433。

编辑:

在寻找解决方案时,我找到了this question,我意识到当我远程连接到服务器时,我使用了一个端口 (190.xxx.xxx.xxx:yyyy)。我的问题就在那里,不是吗?

编辑2: 我的解决方案:我使用的 connectionString 没问题,问题出在端口上。我为我的办公室 IP 打开它,一切都像魅力一样。

【问题讨论】:

  • Integrated Security=false 应该是 Integrated Security=true。并删除用户名和密码。
  • 这是创建连接字符串msdn.microsoft.com/en-us/library/e38h511e%28v=vs.71%29.aspx的快速方法。请注意,在 C# 中使用时必须删除提供程序部分。
  • @juharr:这是一个古老的链接。它已有十多年的历史,而且已经过时了。

标签: c# asp.net sql-server connection-string


【解决方案1】:

我强烈建议您使用SqlConnectionStringBuilder 类,它允许您通过属性配置连接字符串并保证创建有效的连接字符串。

像这样使用它:

SqlConnectionStringBuilder b = new SqlConnectionStringBuilder();
b.DataSource = "190.xxx.xxx.xxx\ServerName";
b.InitialCatalog = "DataBaseName";
b.IntegratedSecurity = false;
b.UserId = "...";
b.Password = "...";

string connectionString = b.ConnectionString;

【讨论】:

    【解决方案2】:

    如果您想使用 Windows 身份验证 进行连接,您应该使用:

    public static string strCon = @"Data Source=190.xxx.xxx.xxx\ServerName,1433;Database=DataBaseName;Integrated Security=True";
    

    另外请注意,1433 是默认的 sql 端口,因此您不必指定它。 你可以写:

    public static string strCon = @"Data Source=190.xxx.xxx.xxx\ServerName;Database=DataBaseName;Integrated Security=True";
    

    在这种情况下,不应指定 User NamePassword,因为它将使用您当前会话的 Windows 帐户。

    您可以找到有关 SQL Server 连接字符串here的更多详细信息

    【讨论】:

    • 感谢您的回答,但我不想使用 Windows 身份验证进行连接,因为当我通过远程连接使用 SQL 时,我以管理员身份登录。另外我想我已经读到你不能在连接字符串中包含 Windows 登录信息。
    【解决方案3】:

    如果您想使用用户 ID 和密码连接,您忘记了 IntegratedSecurity 属性

    public static string strCon = @"Data Source=190.xxx.xxx.xxx\ServerName,1433;Network Library=DBMSSOCN;Initial Catalog=DataBaseName;Integrated Security=False;User ID=User;Password=Pass;
    

    否则:

    public static string strCon = @"Data Source=190.xxx.xxx.xxx\ServerName,1433;Network Library=DBMSSOCN;Initial Catalog=DataBaseName;Integrated Security=True;
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-04-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-05-06
      • 2015-07-03
      相关资源
      最近更新 更多