【问题标题】:How to access database in SQL Server 2008 from another computer如何从另一台计算机访问 SQL Server 2008 中的数据库
【发布时间】:2015-01-28 11:37:22
【问题描述】:

我需要使用 c# 访问另一台计算机中的数据库...我正在使用带有 IP 地址的连接字符串来访问数据库,并且还更改了防火墙设置,但它显示错误如下

在建立与 SQL Server 的连接时发生与网络相关或特定于实例的错误。找不到服务器或 无法访问。验证实例名称是否正确,并且 SQL Server 配置为允许远程连接。 (提供者:TCP 提供程序,错误:0 - 连接尝试失败,因为已连接 一方在一段时间后没有正确回应,或建立 连接失败,因为连接的主机没有响应。)

我正在使用这个连接字符串

SqlConnection con = new SqlConnection("data source=192.168.1.12,1063;initial catalog=trinity;integrated security=false;network library=DBMSSOCN");

【问题讨论】:

  • 你是如何配置防火墙的?
  • 您是否将默认端口从 1433 更改为 1063?您是否在 Sql Server 配置管理器上启用了 TCP 协议?
  • 您是否检查了从 MSSQL Server 配置管理器启用的 TCP/IP 的 Native Client 配置?
  • 我在 sql server 配置管理器中启用了 TCP/IP 并且还在防火墙中创建了新规则...设置端口 UDP 为 1434 和 TCP 为 1433

标签: c# sql-server-2008


【解决方案1】:

这实际上是一个相当大的话题,涉及:网络、身份验证、授权和权限。快速清单:

  1. 在运行 SQL Server 的本地防火墙上打开端口 1433。
  2. 在运行 SQL Server 的本地计算机上打开 SQL Server 配置管理器并启用 TCP 连接。
  3. 添加 Windows 登录或 SQL 帐户用户并授予数据库权限。永远不要使用 SA 帐户进行远程连接!。

在您的连接字符串中有Integrated security=false;,因此您需要在连接字符串中提供User ID=mysqlserveruserid;Password=mysqlserverpassword; 参数。如果您更改 Integrated security=true;,您的 Windows 凭据将被使用。

还有为什么是IP地址?您的网络上没有网络名称解析吗?例如DNS 或 WINS。

SQL Server 是作为默认实例运行还是具有命名实例?如果是命名实例(安装 SQL Server 时会选择),您将需要 Data source=computername\sqlserverinstancename;

有关所有这些方面的更多详细信息可以在 MSDN 上找到 https://msdn.microsoft.com/en-us/library/ms345332.aspx

【讨论】:

    【解决方案2】:

    【讨论】:

    • 为什么不呢?如果它是微软社区并且可以帮助你,另一个用户需要时间在这里输入解释,这不是一个好的答案吗?对于此类问题,用户下次可以多加护目镜......
    • @Disha 链接将来很容易变成死胡同(404)。最好将尽可能多的相关信息添加到您正在链接的资源的答案中,并发布链接。但是,这取决于你。
    猜你喜欢
    • 2017-03-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-26
    相关资源
    最近更新 更多