5

我有一个 AWS 服务器(带有 IIS 的 MS SQL SERVER EXPRESS 2008 R2),弹性 IP 为 54.214.8.111,安全组配置了 HTTP、MS SQL 和 FTP,我可以使用 rdp 文件连接到远程虚拟机amazon 在控制台中为您提供。

但是,当我尝试通过 Visual Studio 连接以测试数据库是否正常工作时,它给了我一个“用户 'dbuser' 登录失败错误。我的 SQL Server 上有一个名为 dbuser 的用户(当然在服务器端)完全访问权限等。尽管有所有指南和帮助文档,我也无法连接到服务器上的 ftp。似乎有些东西只是阻止了我的连接。我在多台计算机上尝试过同样的事情。

除了我怀疑服务器实例之外,一切似乎都配置正确。

任何人都可以帮忙吗?PS 我对 Web 开发相当陌生,这是我的第一台 AWS EC2 服务器。

[更新] 我只是尝试在不同的位置创建一个新实例,同样的错误,也许我不知道如何在 EC2 上配置 SQL Server?

4

1 回答 1

18

我最近遇到了与 AWS/SQL Server 相同的连接问题,我终于解决了。

在 AWS 上远程连接到 SQL Server 涉及 3 个主要因素:AWS --> Windows 安全性 --> SQL Server 设置/安全性。

连接很容易失败,因为每个区域都有特定的要求。我将检查清单:

AWS:

  1. 在 AWS 管理控制台中,转到安全组,单击适用于 Windows 服务器的组,确保 MS SQL TCP 端口 1433 对 0.0.0.0 或您的特定客户端 IP 开放。如果没有,您需要添加它。

  2. 记下服务器的公共 IP

视窗:

  1. RDP 到 Amazon Windows 服务器,开始 > 管理工具 > 本地安全策略
  2. 单击具有高级安全性的 Windows 防火墙,Windows 防火墙属性,单击“公共配置文件”选项卡,将防火墙状态设置为“开启”,将入站设置为阻止,将出站设置为允许(或根据您的应用程序阻止)。好的。
  3. 展开 Windows 防火墙(在左侧窗格中),右键单击入站规则,单击新建规则。
  4. 单击端口选项,下一步>,对于TCP,输入1433 下一步>,允许连接,下一步>,下一步>,给它一个名字(SQL-PORT-ACCESS)

SQL 服务器:

  1. 使用默认 Windows 身份验证通过 SSMS (SQL Server Management Studio) 登录到 SQL Server。
  2. 在左侧窗格中,R-单击顶部服务器列表(带有数据库图标,第一个列表),然后选择“属性”
  3. 属性窗口,点击左侧窗格中的安全,选择“SQL Server and Windows Auth”
  4. 单击连接,选中“允许远程连接”选项...单击确定。
  5. 打开 SQL 配置管理器,开始 > 程序 > Microsoft SQL Server > 配置工具 > SQL Server 配置管理器
  6. SQL Server Network Configuration (Expand), 选择 Protocols for MSSQL, R-Click TCP , 选择 Properties (TCP should be enabled)
  7. 单击 IP 地址选项卡,检查是否启用了 IP1,动态端口为 0,TCP 端口为 1433
  8. 一直向下滚动到 IPAll 部分,在 TCP 动态端口中输入 0,在 TCP 端口中输入 1433。好的...
  9. 返回左窗格,单击 SQL Server Services,R-单击 SQL Server 选项,然后选择“重新启动”。(注意:SQL Browser 服务器不影响连接,浏览器服务只列出可用的服务器,使用您的特定连接参数,无需启动或担心浏览器)

测试:您不必去远程客户端进行测试,首先尝试从服务器上的同一 SSMS 窗口进行连接。这减少了最初可能出错的所有其他事情,如果您可以在此处连接,则可以确认它有效。如果它在您自己的服务器上不起作用,则问题与 Windows 安全性和 SQL 安全性和设置有关。

  1. 在对象资源管理器 (SQL server Management Studio) 下,单击“连接”> 数据库引擎...
  2. 在 Server name: 中,输入您的 PUBLIC IP、逗号,然后输入1433. 例如,如果您的公共 IP 是54.4.4.4,请输入54.4.4.4,1433,
  3. 选择身份验证为“SQL Server”,输入登录用户和密码。
    1. 如果您使用“sa”,请记住更改密码。
    2. 如果您的连接在本地工作,那么您可以尝试远程客户端连接。
  4. 此时您知道您的 SQL 服务器和用户设置是正确的。

接下来,尝试在另一台计算机上使用 SSMS。如果失败,防火墙可能需要第二次查看......

了解问题的好地方,是从 SSMS 轻松访问的 SQL 日志,在左侧窗格中,展开 Management,然后 SQL Server Logs,当前日志将列出所有问题。

所以,这些都是所涉及的部分——错过一个,你会感到沮丧,但首先要在测试时减少这些部分。

我能够从 Windows 设备连接到 AWS Windows Server/SQL Express 上的数据库...

祝你好运!

于 2014-11-07T20:41:10.563 回答