远程 SQL Server 连接问题

Posted

技术标签:

【中文标题】远程 SQL Server 连接问题【英文标题】:Remote SQL Server Connection Issues 【发布时间】:2021-06-02 06:26:16 【问题描述】:

我在将数据从本地 SQL Server (SSMS) 实例传输到远程服务器实例以及运行将数据传输到远程服务器的 SSIS 包时遇到问题(它在本地运行良好)。

我的本​​地 SQL Server 版本是 2018,远程版本是 2014。我的最终目标是能够从本地运行 SSIS 包并将数据传输到远程服务器上的表。我正在本地运行带有 Visual Studio 2019 的包。

我在 Visual Studio 的连接管理器或 SSMS 中的数据库引擎连接中找不到服务器。此外,当我手动输入服务器和数据库的名称然后测试连接时,连接失败/超时。

我收到超时错误,但我已将连接超时从 600 增加到 1600,但仍然失败。 我需要增加更多时间吗?

我开始认为这可能是权限问题,因为我正在使用我的工作笔记本电脑或可能与防火墙和/或端口有关的网络问题。

我绝不是一名 IT 管理员,所以这些东西的数量相当可观。

我已经在我的本地机器上安装了 PortqryUI 工具,并为远程服务器的 IP 地址运行它。结果是“TCP port 1433 (ms-sql-s service): FILTERED portqry.exe -n -e 1433 -p TCP exits with return code 0x00000002”。

我查找了 FILTERED 对 TCP 端口的含义,但似乎没有人知道该信息。当它说 UDP 端口被过滤时,他们有它的意思,但当 TCP 端口被过滤时却没有。 PortqryUI 工具结果是什么意思?

我查看了许多文章来尝试解决问题。其中包括但不限于以下链接:

https://support.microsoft.com/en-us/sbs/topic/solving-connectivity-errors-to-sql-server-ae23c94b-b64b-5056-8b62-22e1694bb889?ui=en-US&rs=en-US&ad=US https://intercom.help/seekwell/en/articles/3078858-connecting-to-mssql-microsoft-sql-server SQLCMD Unable to complete login process due to delay in opening server connection

另外,我尝试在 mmc.exe SQL Server 配置管理器管理单元中禁用共享内存。截至目前,共享内存已启用,命名管道已禁用,并且 TCP/IP 在我的本地计算机上已启用。所有 3 都在远程服务器上启用。

我不知道我是否需要在这里的命名管道中添加一些东西,或者检查防火墙是否阻止了端口。

我已联系我的 IT 管理员,但他没有提供任何说明。

有人可以帮我解决这个问题吗?

例如,我知道如何检查我在服务器上的权限,但我不确定需要哪些权限才能将数据从本地 SSMS 传输到远程服务器 SSMS。

我的明确权限是“连接 SQL(授予)”,我的有效权限是:

管理批量操作、更改任何可用性组、更改任何连接、更改任何凭据、更改任何数据库、更改任何端点、更改任何事件通知、更改任何事件会话、更改任何外部数据源、更改任何外部文件格式,更改任何链接的服务器、更改任何登录、更改任何服务器审计、更改任何服务器角色、更改资源、更改服务器状态、更改设置、更改跟踪、验证服务器、连接任何数据库、连接 SQL、控制服务器、创建任何数据库、创建可用性组、创建 DDL 事件通知、创建端点、创建服务器角色、创建跟踪事件通知、外部访问程序集、模拟任何登录、选择所有用户安全、关闭、不安全程序集、查看任何数据库、查看任何定义和查看服务器状态.

我在本地服务器上检查了资源监视器上的网络>>>侦听端口下的端口号 1433,防火墙状态对两个地址(即未指定 IPv6 和未指定 IPv4)都显示“不允许,未限制”。它在远程服务器上也说了同样的话。

感谢您的任何帮助!

另外,如果您需要更多信息,请告诉我。我可以根据需要添加到正文中。

如果我没有提供足够的内容,我深表歉意,但我在这方面并不精通,所以在发布此内容时我认为我已经足够了。

【问题讨论】:

已过滤意味着防火墙完全阻塞,甚至没有响应关闭消息。命名管道和共享内存用于 PC 本地的服务器(在同一台机器上) 谢谢@Charlieface。因此,如果我理解正确,这意味着我必须允许该端口通过防火墙(或要求我的 IT 管理员这样做)。对吗? 你好@Charlieface。我再次联系了我的 IT 管理员,要求他允许 sqlserver.exe(IPv6 和 IPv4)的端口 1433 通过防火墙。我们将看看他说了什么,以及它是否能解决问题。如果是这样,那么您能否发表您的评论作为解决方案,以便我为您提供信用? @Charlieface,在根据您的建议告诉他我认为错误的地方后,我能够在您的帮助和我的 IT 管理员的帮助下让它工作。我发布了一个答案,但请随时发布您自己的答案,我会给您信用。再次感谢! 【参考方案1】:

端口 1433 被我公司使用的防火墙阻止。

我的 IT 管理员解除了对它的阻止,它运行良好(适用于 SSIS、Visual Studio 和 SSMS)。

感谢@Charlieface 引导我走上正确的道路。

【讨论】:

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

关于SQL Server 2005 设置远程连接的控制

SQL server 2005 远程连接问题

如何连接远程sqlserver数据库

SQL Server:启用没有 SSMS 的远程连接

断开所有远程连接(sql server)

SQL Server2008如何连接远程的服务器