【问题标题】:AWS: Connecting from virtual machine to SQL databaseAWS:从虚拟机连接到 SQL 数据库
【发布时间】:2018-02-21 09:01:11
【问题描述】:

我在 AWS 上创建了一个虚拟机,还创建了一个 SQL Server Express 实例。我现在想要虚拟机上的 .NET 应用程序与数据库通信。

我可以使用以下详细信息通过笔记本电脑上的 SSMS 连接到实例/数据库:

Server name: amazontest.xxxx.eu-west-1.rds.amazonaws.com
Login: Administrator
Password: xxxx

所以该实例已启动并运行,并且可以公开访问。

在我的 .net 应用程序的 web.config 中,我有以下连接字符串:

  <connectionStrings>
    <add name="DefaultConnection" 
    connectionString="Server=amazontest.xxxx.rds.amazonaws.com,1433;Database=amazontest;User Id=Administrator;Password=xxxx;MultipleActiveResultSets=true;" 
    providerName="System.Data.SqlClient" />
  </connectionStrings>

但这一直给我一个错误:A network-related or instance-specific error occurred while establishing a connection to SQL Server.

如果外部连接正常,我不确定还能尝试什么...

【问题讨论】:

    标签: .net sql-server amazon-web-services


    【解决方案1】:

    所以答案在Security Groups

    当您创建 RDS 时,它会使用您的当前 IP 地址为入站流量分配一个安全组,这就是为什么 SSMS 在我的笔记本电脑上工作的原因。我必须编辑它创建的安全组,为虚拟机的私有 IP 添加一个Inbound 规则。

    即在VM实例上,找到Private IP地址,并将其作为Inbound规则添加到安全组,类型:Custom TCP Rule,端口范围:1433,来源:X.X.X.X/32

    【讨论】:

      【解决方案2】:

      是的,应用无法与 DB 建立连接,因为端口 (1433) 未打开或可能为少数 IP 打开,因此您需要将应用服务器 IP 列入 RDS 实例的安全组白名单。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2014-04-12
        • 1970-01-01
        • 2021-07-22
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-03-07
        • 1970-01-01
        相关资源
        最近更新 更多