远程计算机上的 SQL Server

Posted

技术标签:

【中文标题】远程计算机上的 SQL Server【英文标题】:SQL Server on remote computer 【发布时间】:2016-12-26 21:29:22 【问题描述】:

我在家庭网络上的 IP 为 192.168.66 的计算机上有一个 SQL Server Express 实例。

我已在端口 49170 上启用 TCP/IP,并在 Windows 防火墙上添加了传入规则。

我有一个应用程序,我想在我的网络中的不同计算机上安装它。当我在 Visual Studio 中测试我的应用程序时,我无法连接到远程计算机上的实例。

<connectionStrings>
    <add name="EquipamentoDal.Properties.Settings.ExtinguisherMngConnectionString"
         connectionString="Data Source=192.168.1.66,49170;Initial Catalog=ExtinguisherMng;Integrated Security=True"
         providerName="System.Data.SqlClient" />
 </connectionStrings>

服务器名称是DESKTOP-HU51203\EXPRESS。 我做错了什么无法连接?

【问题讨论】:

有什么异常?你能从远程PC ping ip 地址吗? 你使用的是Integrate security=true,这台电脑的用户权限够吗?你冒充了某个用户吗? 集成安全性可能不适用于家庭网络。 我能ping通电脑是的。 SQL Server Express 默认情况下 NOT 是否允许远程连接 - 您是否在 SQL Server Express 机器上明确启用了这些远程连接??跨度> 【参考方案1】:

您的连接字符串没有指定您要连接的命名实例,它只指定 IP 地址,这意味着任何客户端都将连接到默认实例而不是命名实例。

默认情况下,SQL Server Express 的配置与 SQL Server 的“标准”版本(标准版、工作组版、开发者版和企业版)不同,如下所示:

阻止传入的远程连接 - 这必须在 SQL Server 配置管理器中明确启用 使用名为SQLEXPRESS命名实例,而不是配置为默认实例 SQL Server Express 在支持 AttachDbLocalDb 方面也是独一无二的 - 其他 SKU/版本不支持 AttachDbLocalDb 功能。

在您的情况下,您已经启用了远程连接并且您没有使用 AttachDbLocalDb,因此您只需配置您的客户端以连接到命名实例:

您在连接字符串中使用&lt;host&gt;\&lt;instance name&gt;,&lt;port&gt; 格式在Data Source=Server= 参数中指定命名实例,例如Data Source=foo\SQLEXPRESS,1433,或者在您的特定情况下:

Data Source=192.168.1.66\SQLEXPRESS,49170;Initial Catalog=ExtinguisherMng;Integrated Security=True

您提到您在家庭网络上执行此操作,这意味着您不太可能使用 Active Directory 或 Kerberos,并且鉴于 SQL Server Express 不会公开其用于其服务标识的密码(用户也不能通过网络以NT AUTHORITY\NetworkService 身份验证这意味着您不能使用Integrated Security=True(或Integrated Security=SSPI,这是等效的,但SSPI 是首选值),您需要在您的连接字符串。

    在服务器中创建一个新的登录对象(您需要先以某种方式登录到服务器,无论是本地还是远程使用sa 帐户(如果存在)) 通过将Integrated Security=True 替换为User Id=&lt;userName&gt;;Password=&lt;password&gt;; 来指定新登录的凭据

【讨论】:

我之前已经尝试过 192.168.1.66\SQLEXPRESS,49170 并且遇到了同样的问题 @RolandoAzevedo 您收到的确切错误消息是什么? 服务器未找到或无法访问,,....可能未配置为允许远程连接。

以上是关于远程计算机上的 SQL Server的主要内容,如果未能解决你的问题,请参考以下文章

此计算机上没有可以更新的 SQL server实例或共享功能

连接到 sql server 数据库 mdf 文件而不在客户端计算机上安装 sql server?

无法远程连接到 SQL Server 实例

本地计算机上的SQL Server(MSSQLSERVER)服务启动后停止。某些服务在未由其他服务或程序使用时将自动停止

Windows 无法在本地计算机上启动 SQL Server (SQLEXPRESS) 服务。错误 1053

无法与SQL Server建立连接