我正在尝试使用 SSMS 通过 SSH 隧道(使用 Putty)连接到在 AWS 服务器上运行的 SQL Server 默认实例。我可以从工作站上的 PowerShell 窗口建立隧道并使用 SQLCMD 访问数据库中的数据。但是,我根本无法让 SSMS 工作。
我在本地工作站上只拥有用户权限,但在 AWS 环境中我拥有完整的 root/admin 权限。
我正在使用 Putty 设置 SSH 隧道,本地端口 1433 通过堡垒服务器转发到 SQL 服务器端口 1433。当我登录堡垒服务器并运行 tcpdump 时,我可以轻松看到 SQLCMD 会话中的活动。但是,当我尝试通过 SSMS 连接时,我看不到任何相关内容。
我尝试过连接到 localhost 以及 127.0.0.1。我尝试过 127.0.0.1、端口号和 MSSQLSERVER 的所有组合,每次都在端口号前使用逗号,将端口号放在 IP 地址之后和 MSSQLSERVER 之前,以及在 MSSQLSERVER 之后这样做。使用正斜杠和使用反斜杠。
我认为正确的方法应该是 127.0.0.1\MSSQLSERVER,1433。我这样做时收到的错误是标准 MS SQL Server 错误 1225。
当我通过 RDP 连接到 SQL 服务器时,我可以使用 SSMS 本地连接到数据库。我已打开 SQL Server 浏览器并将端口 1434 的隧道添加到我的 putty 配置中。
我搜索过这里和其他网站,但所有修复似乎都与服务器本身的问题有关。我尝试实施这些修复,尽管我真的不认为这些是问题所在,因为我在堡垒上看不到任何相关活动。
而且,如果没有本地工作站的管理员访问权限,我就无法查看防火墙设置或安全日志,无法查看它们可能显示的内容。您认为我可能遗漏了什么吗?
答案1
我们昨天发现了根本原因。SSMS 应用程序在 XenApp 沙盒环境中运行,无法看到本地计算机。我们尝试了一个直接安装在映像上的测试映像,并且成功了。