我最近遇到了与 AWS/SQL Server 相同的连接问题,我终于解决了。
在 AWS 上远程连接到 SQL Server 涉及 3 个主要因素:AWS --> Windows 安全性 --> SQL Server 设置/安全性。
连接很容易失败,因为每个区域都有特定的要求。我将检查清单:
AWS:
在 AWS 管理控制台中,转到安全组,单击适用于 Windows 服务器的组,确保 MS SQL TCP 端口 1433 对 0.0.0.0 或您的特定客户端 IP 开放。如果没有,您需要添加它。
记下服务器的公共 IP
视窗:
- RDP 到 Amazon Windows 服务器,开始 > 管理工具 > 本地安全策略
- 单击具有高级安全性的 Windows 防火墙,Windows 防火墙属性,单击“公共配置文件”选项卡,将防火墙状态设置为“开启”,将入站设置为阻止,将出站设置为允许(或根据您的应用程序阻止)。好的。
- 展开 Windows 防火墙(在左侧窗格中),右键单击入站规则,单击新建规则。
- 单击端口选项,下一步>,对于TCP,输入1433 下一步>,允许连接,下一步>,下一步>,给它一个名字(SQL-PORT-ACCESS)
SQL 服务器:
- 使用默认 Windows 身份验证通过 SSMS (SQL Server Management Studio) 登录到 SQL Server。
- 在左侧窗格中,R-单击顶部服务器列表(带有数据库图标,第一个列表),然后选择“属性”
- 属性窗口,点击左侧窗格中的安全,选择“SQL Server and Windows Auth”
- 单击连接,选中“允许远程连接”选项...单击确定。
- 打开 SQL 配置管理器,开始 > 程序 > Microsoft SQL Server > 配置工具 > SQL Server 配置管理器
- SQL Server Network Configuration (Expand), 选择 Protocols for MSSQL, R-Click TCP , 选择 Properties (TCP should be enabled)
- 单击 IP 地址选项卡,检查是否启用了 IP1,动态端口为 0,TCP 端口为 1433
- 一直向下滚动到 IPAll 部分,在 TCP 动态端口中输入 0,在 TCP 端口中输入 1433。好的...
- 返回左窗格,单击 SQL Server Services,R-单击 SQL Server 选项,然后选择“重新启动”。(注意:SQL Browser 服务器不影响连接,浏览器服务只列出可用的服务器,使用您的特定连接参数,无需启动或担心浏览器)
测试:您不必去远程客户端进行测试,首先尝试从服务器上的同一 SSMS 窗口进行连接。这减少了最初可能出错的所有其他事情,如果您可以在此处连接,则可以确认它有效。如果它在您自己的服务器上不起作用,则问题与 Windows 安全性和 SQL 安全性和设置有关。
- 在对象资源管理器 (SQL server Management Studio) 下,单击“连接”> 数据库引擎...
- 在 Server name: 中,输入您的 PUBLIC IP、逗号,然后输入
1433
. 例如,如果您的公共 IP 是54.4.4.4
,请输入54.4.4.4,1433
,
- 选择身份验证为“SQL Server”,输入登录用户和密码。
- 如果您使用“sa”,请记住更改密码。
- 如果您的连接在本地工作,那么您可以尝试远程客户端连接。
- 此时您知道您的 SQL 服务器和用户设置是正确的。
接下来,尝试在另一台计算机上使用 SSMS。如果失败,防火墙可能需要第二次查看......
了解问题的好地方,是从 SSMS 轻松访问的 SQL 日志,在左侧窗格中,展开 Management,然后 SQL Server Logs,当前日志将列出所有问题。
所以,这些都是所涉及的部分——错过一个,你会感到沮丧,但首先要在测试时减少这些部分。
我能够从 Windows 设备连接到 AWS Windows Server/SQL Express 上的数据库...
祝你好运!