1

在我的局域网上,我在一台机器上运行 SQL Server 2005,而我的开发人员机器(另一台机器)上有 VS2008,我可以使用计算机名和本地局域网从 Visual Studio 中的服务器资源管理器访问 SQL Server名称即:mspc2.ourcompany.local 所以,我知道它一切正常,运行良好,我可以看到上面的表格和所有内容。

现在,SQL Server 机器有一个指向它的公共 IP,我目前只使用它来远程桌面进入机器,以便在家里四处寻找。

那么,我需要做什么才能从家里的笔记本电脑上的 Visual Studio 或不在 LAN 上的任何其他计算机上访问该 SQL Server?我已经关闭了该机器上的所有软件防火墙,并且我正在硬件路由器上进行直通,以让所有到该公共 IP 的流量/端口路由到该机器的 LAN IP。

我可以毫无问题地使用远程桌面访问那台机器。

我尝试在服务器资源管理器中输入公共 IP 地址,但它回来并说无法连接。

那么我需要做些什么来打开那台机器,让我从异地访问它上面的 SQL Server?

4

4 回答 4

2

你最好在你的网络中设置一个安全的 VPN 并以这种方式访问​​ SQL Server,而不是让它公开访问。

于 2009-03-14T03:46:24.090 回答
0

尝试检查该特定计算机上 SQL Server 正在侦听的端口,并确保您在工作 LAN/网关上设置了端口转发和/或在您的笔记本电脑、家庭 LAN/网关和工作 LAN 之间畅通了端口/Gateway 和 SQL 框本身。

要检查 SQL 正在使用哪个端口,请使用通常位于开始 -> 程序 -> Microsoft SQL Server 2005 -> 配置工具中的 SQL 配置管理器。

打开后,展开 LHS 树“SQL Server 2005 Network Configuration”并检查 TCP/IP 是否已启用。右键单击 TCP/IP 并选择属性,然后选择 IP 地址选项卡。默认端口为 1433。

正如其他人已经提到的,建立与工作网络的 VPN 连接是更安全且推荐的方法。

于 2009-03-14T03:47:26.787 回答
0

您可能还需要确保 SQL Server Browser 服务正在运行,如果在打开端口 1433(或您设置的任何端口)后仍然看不到它,等等。

于 2009-03-14T04:05:14.873 回答
0

要从您的主设备通过 Management Studio 访问该设备,您必须确保 TCP/IP 端口 1433 在服务器和客户端防火墙上均已打开。这是握手端口(或者您可以更改默认端口并通过 xxx.xxx.xx.xx,portnum 作为地址访问它)。握手完成后,客户端和服务器实际上将通过不同的端口进行通信,因此这也必须打开。 您可以在此处找到更多信息。

不过,一般而言,您应该只需将 Management Studio 指向 IP 地址即可。到达该框后,您需要通过 SQL 登录帐户登录(不要使用 sa - 请参阅下面的建议)。

如果您仍然遇到问题,请运行 SQL Server 配置管理器(在 SQL Server 菜单上)并确保 TCP/IP 已启用(请参阅网络配置下的协议)并且 SQL Server 对来自框外的连接开放。最后,如果您仍然遇到问题,请检查您本地的网络:在 Windows 目录(或 System32)中找到 CliConfig.exe 并运行它以确定您是否也在使用 TCP/IP。

好的 - 关于安全性的几句话:

我的第一条建议是认识到您在当前配置中非常脆弱。为帮助减少漏洞,请确保运行 SQL Server 表面分析并在适当时遵循其建议。

您还需要禁用 sa 帐户(转到安全、登录并找到 sa,右键单击并选择属性,然后单击状态,然后在“登录”下单击禁用)。您将使用您的管理 Windows 用户帐户而不是 sa 来访问该框。最后,创建一个新的 SQL 登录帐户和一个难以从远程计算机上使用的密码。你看,一旦黑客发现 1433 端口打开,sa 帐户就会不断受到攻击(在躲在防火墙后面之前,我每天收到 16,000+)。其他帐户名称不会。

于 2009-03-14T03:54:23.573 回答