无法使用 Management Studio 连接到 RDS SQL Server 数据库

Posted

技术标签:

【中文标题】无法使用 Management Studio 连接到 RDS SQL Server 数据库【英文标题】:Cannot connect to RDS SQL Server Database using Management Studio 【发布时间】:2017-11-24 18:10:14 【问题描述】:

我在 AWS 中创建了一个 SQL Server RDS 实例,它似乎已启动并正在运行,但如果我尝试使用 Management Studio 连接到它,我会收到以下错误:

这是错误的文本:

在建立与 SQL Server 的连接时发生与网络相关或特定于实例的错误。服务器未找到或无法访问。验证实例名称是否正确以及 SQL Server 是否配置为允许远程连接。 (提供者:TCP 提供者,错误:0 - 等待操作超时。)(Microsoft SQL Server,错误:258)

我最初尝试使用使用实例创建的默认安全组,但当它不起作用时,我创建了一个新的安全组并修改了实例以使用它。

在这里您可以看到详细信息:

我尝试了这个连接设置来连接: 服务器类型:数据库引擎 服务器名称:valuationdlsdev.ck1qvjqhglyg.us-west-2.rds.amazonaws.com,1433 身份验证:SQL Server 身份验证 登录:我在创建 RDS 实例时创建的主用户登录 密码:我在创建 RDS 实例时创建的主用户密码

我有点不知所措,所以我将安全组上的设置更改为所有流量只是为了看看这是否可行,所以这里是安全组上的所有设置:

此时我想知道端口 1433 是否未打开,因为我觉得我已经尝试了所有方法。谁能帮帮我。

谢谢。

【问题讨论】:

这个实例是使用 SQL Server SE 2016 创建的。当我使用 SQL Server Express 版本创建一个时,我能够连接,但不能使用 SE。 【参考方案1】:

万一有人看到这篇文章寻找答案,我只想更新并确保如果有人需要它就在那里。这里的问题原来是我误解了“可公开访问”的工作方式并将其设置为“是”。显然它应该设置为“否”。 “是”,但对 SQL Server Express 版本有效。

【讨论】:

【参考方案2】:

确保它可以公开访问,您必须选中一个单选按钮才能使其公开访问。

还在入站选项卡中添加 MS SQL 入站规则。在进行更改后等待一段时间,以便在实例中更新设置。

【讨论】:

【参考方案3】:

感谢您在这里的讨论。只需发布我的发现,以防将来有人需要帮助。

我最初遵循本指南https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_ConnectToMicrosoftSQLServerInstance.html

然后,我从这篇文章中得到了一些想法,并最终找出了我的特定问题。 https://forums.aws.amazon.com/thread.jspa?messageID=845682 发帖者确实做了很棒的故障排除步骤,这可以帮助解决大多数常见的错误 258 问题。最后我根据回答者的建议找出了我的问题。

就我遇到错误 258 的情况而言,我尝试从我的工作场所连接到安全网络内的 RDS SQL Server 2016。当我切换到使用某电信厂商提供的公网时,连接成功。

【讨论】:

【参考方案4】:

如果您想在创建实例后从不同的网络访问,您需要打开对您要访问的 IP 范围的访问权限,方法是转到分配给您的数据库实例的“安全组”,然后然后为您的 IP 范围添加规则。

PD。默认情况下,AWS 仅允许从您激活“公共访问”的机器的 IP 范围访问实例。

【讨论】:

【参考方案5】:

我也无法从我的办公室笔记本电脑访问它,但我可以从我的个人笔记本电脑访问它。我认为这是因为一些公司的防火墙规则。

【讨论】:

【参考方案6】:

根据我的经验,这是违反直觉的。使用我选择的选项,所有端口和 IP 似乎都是打开的,但是在编辑安全组中的入站和出站规则以在任何地方使用 MS SQL 后,我能够连接。

【讨论】:

【参考方案7】:

对于入站规则,请转到您的数据库实例的 VPC 安全组

在 Inbound 选项卡中单击修改

在“我的 IP”或“任何地方”通过您的 IP 更改 ip 0.0.0.0 列源

【讨论】:

【参考方案8】:

在我的例子中,我打开了与我的数据库关联的 VPC 安全组

在 EC2 安全组仪表板中,我从操作下拉列表中选择了编辑入站规则并选择了编辑入站规则。

起初,我查看了入站规则并认为一切正常,因为这是当前设置

毕竟 - 如果它允许所有流量,那么可能出了什么问题?

一时兴起,我为 TCP 端口 1433 添加了一条规则。以这个简单的设置结束

然后它立即开始为我工作。

【讨论】:

我已经完美地完成了所有这些,但仍然无法连接。使用相同的 sg 和 vpc 和子网,一切都相同,postgre db 实例我可以连接,但只有 mssql 无法连接 太棒了!为我工作。我将All traffic 源设为sg-xxxxx,然后将其替换为0.0.0.0/0,然后如上所述添加MSSQL 规则。【参考方案9】:

我遇到了同样的问题。

我最终删除了安全组入站规则,并为端口 1433 添加了一个新的入站规则,源为:0.0.0.0

附上图片。

inbound rules

【讨论】:

救世主!!在挣扎了 2 个小时后,这对我有所帮助:)

以上是关于无法使用 Management Studio 连接到 RDS SQL Server 数据库的主要内容,如果未能解决你的问题,请参考以下文章

在 Management Studio 上使用 Workbench 连接到 SQL Server

System.Data.SqlClient.SqlException - 无法通过Management Studio连接到SQL Server

Visual Studio 2008不能创建数据库连接出现:未能加载文件或程序集“Microsoft.SqlServer.Management.Sdk.

我用sql server 2008 management studio 连接 sql server 2005, 提示4064错误,请问如何解决?

SQL 默认端口改变,Management Studio连接问题

为何使用Microsoft SQL Server Management Studio连接Integration Services服务失败