Sql server 无法从SSMS连接到AWS数据库

Sql server 无法从SSMS连接到AWS数据库,sql-server,database,amazon-web-services,ssms,amazon-rds,Sql Server,Database,Amazon Web Services,Ssms,Amazon Rds,我已经用Amazon RDS创建了一个Microsoft SQL server数据库。我已使用包含我的IP的入站规则创建了一个安全组。我修改了DB实例以包含该安全组。我复制并粘贴了连接端点,并将其粘贴到Microsoft SQL server connect窗口的服务器名称字段中,后跟逗号和端口号1433。我使用具有正确凭据的SQL server身份验证。这是我尝试连接时遇到的错误,我遗漏了什么 无法连接到“复制的端点名称…”us-east-1.rds.amazonaws.com,1433 ==

我已经用Amazon RDS创建了一个Microsoft SQL server数据库。我已使用包含我的IP的入站规则创建了一个安全组。我修改了DB实例以包含该安全组。我复制并粘贴了连接端点,并将其粘贴到Microsoft SQL server connect窗口的服务器名称字段中,后跟逗号和端口号1433。我使用具有正确凭据的SQL server身份验证。这是我尝试连接时遇到的错误,我遗漏了什么

无法连接到“复制的端点名称…”us-east-1.rds.amazonaws.com,1433

===================================

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


有关帮助,请单击:


错误号码:258 严重程度:20 州:0


===================================

等待操作超时

已解决


我通过AWS门户修改了DB实例以启用公共访问,然后通过SSMS连接选项将“TrustServerCertificate=True”添加到连接字符串中。我现在可以连接。

当您执行
nslookup“复制的端点名称…”us-east-1.rds.amazonaws.com
时,它是否解析为AWS上数据库服务器的公共IP地址?为什么不使用公共IP地址而不是DNS名称(至少是为了排除连接故障)?(仅供参考-我不熟悉Amazon RDS,我熟悉AWS/EC2…不确定我问的问题是否正确…)当您将IP添加到AWS安全组时,是否也将TCP端口1433添加到其中,以便您的SSMS流量可以路由到服务器?您是否已打开Windows Server防火墙上的端口1433以允许流量进入服务器?您是否从服务器上提升的CMD窗口执行了
netstat-n-b-a
,以验证SQL server是否正在侦听端口1433?SQL Server是否配置为接受TCPIP连接或仅接受命名管道?是否尝试在本地计算机上运行SSM并连接到Amazon上的DB实例?如果是这样的话,为什么不直接将RDP连接到Amazon服务器并从服务器控制台本地运行SSM,而不是尝试将本地SSM连接到Amazon DB实例?RDS是“平台即服务”—没有RDP这样的东西,事实上,这是目标的一部分-不需要维护操作系统/platform@JamesL.我做了一次nslookup,在端口1433上使用了公共IP,得到了相同的错误。在为安全组创建规则时,我确实指定了端口1433。我在本地机器上使用Windows Defender Firewall制定了一条规则,允许端口1433上的所有流量,我甚至完全关闭了防火墙,但仍然出现了相同的错误。我也尝试过通过手机使用热点,同样的错误。我的路由器也没有阻塞那个端口。
Program Location:

   at System.Data.SqlClient.SqlInternalConnectionTds..ctor(DbConnectionPoolIdentity identity, SqlConnectionString connectionOptions, SqlCredential credential, Object providerInfo, String newPassword, SecureString newSecurePassword, Boolean redirectedUserInstance, SqlConnectionString userConnectionOptions, SessionData reconnectSessionData, DbConnectionPool pool, String accessToken, Boolean applyTransientFaultHandling)
   at System.Data.SqlClient.SqlConnectionFactory.CreateConnection(DbConnectionOptions options, DbConnectionPoolKey poolKey, Object poolGroupProviderInfo, DbConnectionPool pool, DbConnection owningConnection, DbConnectionOptions userOptions)
   at System.Data.ProviderBase.DbConnectionFactory.CreateNonPooledConnection(DbConnection owningConnection, DbConnectionPoolGroup poolGroup, DbConnectionOptions userOptions)
   at System.Data.ProviderBase.DbConnectionFactory.TryGetConnection(DbConnection owningConnection, TaskCompletionSource`1 retry, DbConnectionOptions userOptions, DbConnectionInternal oldConnection, DbConnectionInternal& connection)
   at System.Data.ProviderBase.DbConnectionInternal.TryOpenConnectionInternal(DbConnection outerConnection, DbConnectionFactory connectionFactory, TaskCompletionSource`1 retry, DbConnectionOptions userOptions)
   at System.Data.ProviderBase.DbConnectionClosed.TryOpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory, TaskCompletionSource`1 retry, DbConnectionOptions userOptions)
   at System.Data.SqlClient.SqlConnection.TryOpenInner(TaskCompletionSource`1 retry)
   at System.Data.SqlClient.SqlConnection.TryOpen(TaskCompletionSource`1 retry)
   at System.Data.SqlClient.SqlConnection.Open()
   at Microsoft.SqlServer.Management.SqlStudio.Explorer.ObjectExplorerService.ValidateConnection(UIConnectionInfo ci, IServerType server)
   at Microsoft.SqlServer.Management.UI.ConnectionDlg.Connector.ConnectionThreadUser()