无法连接到在 Amazon EC2 机器上运行的 SQL

无法连接到在 Amazon EC2 机器上运行的 SQL

我正在使用在 Amazon EC2 机器上运行的 SQL 管理工作室 2008。我无法连接到我的 asp.net 应用程序中的数据库。EC2 实例已设置为通过 SQL 端口接受连接。我还可以远程控制机器以及查看服务器上托管的网站。下面列出了与此实例相关的部分连接字符串。当程序运行并调用此连接字符串时,它会返回 tcp 错误 0 - 无返回响应。它只是超时。

<add name="ProjectServer" connectionString="Data Source=*IP ADDRESS HERE*,1433;Initial Catalog=*Catalog Name*;User ID=IP-0A6ED514\Administrator;"/>

我删除了示例中的 ip 和目录名称,但我确信它们是正确的。

我认为唯一可能导致错误的事情是用户 ID 和服务器名称之间的名称差异 - 当我登录 EC2 实例上的 sql 服务器管理器时,服务器名称是 ip-0A6ED514\sharepoint,但用户名是 ip-0A6ED514\administrator。未使用密码。不确定我是否需要将密码留空 - 也不确定服务器名称和登录用户 ID 之间的差异是否会有所不同。任何帮助都值得感激。谢谢。

更新 - 当此连接字符串与端口一起使用时,我收到 tcp 提供程序错误 40 - 当端口在那里时,我收到错误 0

编辑- SQL Server 使用 Windows 身份验证 - 这有什么区别吗?通常我总是使用 SQL Server 身份验证

答案1

使用 Windows 身份验证时,远程 EC2 实例需要根据您本地的 PC 或域对您进行身份验证。除非您设置了某种 VPN 或其他东西,否则这将不起作用。

改为使用 SQL 身份验证。您需要在连接字符串中指定用户 ID 和密码。

确保端口 1433 在您的安全组中打开(最好仅从您的 Web 应用访问数据库的 IP 地址打开)。确保您的 SQL 服务器设置为接受 TCP/IP 网络连接。

您的 EC2 实例有一个公共 DNS 条目,如 ec2-xx-xx-xx-xx.compute-1.amazonaws.com。将其用作您的数据源。我不确定您是否可以使用“\sharepoint”部分。尝试使用和不使用来看看是否有效。

答案2

您的连接字符串看起来应该像这样。

Data Source=ip-0A6ED514\sharepoint;Initial Catalog=myDataBase;Integrated Security=SSPI;

另一个选择是让它看起来像这样

Data Source=.\sharepoint;Initial Catalog=myDataBase;Integrated Security=SSPI;

要使用 IP 地址,它应该是这样的。

Data Source=xxx.xxx.xxx.xxx\sharepoint;Initial Catalog=myDataBase;Integrated Security=SSPI;

为了使其正常工作,您需要在服务器上运行 SQL 浏览器,并且需要在服务器上打开 UDP 端口 1434 以及运行 SQL 实例的 TCP 端口。

相关内容