通过IP地址连接到SQL Server

6
我正在使用vb.net框架4开发工具,需要通过IP地址连接公司服务器,这样员工就可以在家中使用应用程序。
我尝试了许多类型的连接字符串,但仍然出现以下错误:
“插入到DB中的错误与网络或实例相关。在建立与SQL Server的连接时发生特定于实例的错误。未找到服务器或无法访问服务器。请验证实例名称正确,并确认SQL Server已配置为允许远程连接。(提供程序:TCP Provider,错误:0-因为目标计算机积极拒绝,所以无法建立任何连接。)”
我的连接字符串:
Data Source=xxx.xx.xxx.xxx\serverName\SQL2012,1433;Network Library=DBMSSOCN;
Initial Catalog=xxxxx;User ID=xxxxxx;Password=xxxxxxx;

确认一下,我已经修改了 SQL Server 的设置。启用了 TCP/IP 和命名管道。 - Mohammed Ali
请问您的计算机是否已连接网络,并且防火墙(软件/硬件)是否已允许端口1433通过客户端和服务器之间的任何可能存在的防火墙?我问这个问题的原因是因为您提到了家庭用户,您是否使用VPN连接? - Doon
请确保您的服务器防火墙(如果有)开放了您使用的端口(1433)。 - Mikhail Makarov
哦,我没注意到那个问题,你认为是防火墙的问题吗?你能否指导我去哪个网站看如何配置Windows Server 208的防火墙,还有VPN是什么......谢谢。 - Mohammed Ali
1
请参考此链接 - http://www.codeproject.com/Questions/433687/sql-server-connectity-over-the-internet - Suhas Gosavi
显示剩余2条评论
2个回答

11

以下是您可以尝试的几个方法。

检查SQL Server是否配置为侦听该IP地址。如果您的服务器具有多个IP地址,这并不意味着它可以自动接受来自所有IP的连接。

要设置此项,请转到SQL Server Configuration Manager -> SQL Server Network Configuration -> {instancename}的协议 -> TCP/IP -> IP地址选项卡

在设置防火墙时,以下信息也将指导您。您希望在入站和出站流量上启用端口1433的TCP和UDP流量。

http://www.howtogeek.com/112564/how-to-create-advanced-firewall-rules-in-the-windows-firewall/

现在,如果您有物理防火墙或除Windows默认防火墙之外的其他软件防火墙,则需要联系您的网络管理员。

5
你的想法是正确的,只是表述过于繁琐。
如果SQL Server是计算机上的默认实例,则可以直接指定它:
Data Source=xxx.xxx.xxx.xxx

如果它是一个命名实例,请将其指定为
Data Source=xxx.xxx.xxx.xxx\INSTANCENAME

对于 SQL Express 实例,通常是这样的:
Data Source=xxx.xxx.xxx.xxx\SQLEXPRESS

如果在同一服务器上运行多个实例,您可能需要保留SQL Browser服务运行(通常默认情况下被禁用)。
有一个非常好的网站http://www.connectionstrings.com提供了与连接到几乎所有类型的服务器数据库相关的语法和选项。
此外,在解决SQL连接问题时,关闭服务器机器上的防火墙总是有帮助的,直到您解决了所有问题,然后重新启用它并解决防火墙问题。这样做只会让你试图同时解决多个潜在问题变得更加困难。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接