我有一个远程服务器,它可以访问在同一网络中运行的 SQL Server 实例。
我正在开发使用此 SQL 服务器的工具,但没有备份或备份/复制数据库结构的权限。因此我需要在我的开发机器上访问此数据库。
我们使用 TeamViewer 连接到远程服务器,并可以使用 TeamViewer VPN 访问服务器。
有什么方法可以将服务器设置为将端口 1433 上的所有传入连接(这些连接仅通过 VPN 传入)“转发”到 SQL Server 的本地 IP 地址?
答案1
请参阅此处的 Teamviewer 手册:http://www.teamviewer.com/en/res/pdf/TeamViewer7_Manual_RemoteControl_EN.pdf
根据使用 TeamViewer VPN 时第 21 页的规定:
注意:如果您通过 TeamViewer VPN 将本地计算机连接到远程计算机,则只有这两台计算机将在虚拟专用网络中链接在一起。任何一台计算机的 LAN 中的其他计算机都无法访问。
可能有一种方法可以告诉远程服务器上的 Teamviewer VPN 虚拟适配器将流量通过 NAT 传输到 SQL 服务器,但他们不支持这样做,而且这样做可能会导致连接出现其他意外后果。
如果您正在开发需要访问此 SQL 服务器的工具,那么有人是否不能授予您从开发机器访问该服务器的权限(通过 Teamviewer VPN、仅通过防火墙对您的请求进行 NAT 等)?
答案2
感谢@TheCleaner 的指导。不过,我找到了一个解决方法,我想分享一下,以防其他人遇到类似的情况。
诀窍是在我可以控制的中间服务器上安装 SQL Server Express。然后,我在另一台服务器上的目标 SQL Server 实例中添加了一个“链接服务器”。
TeamViewer VPN 允许我访问中间 SQL Server,然后我可以从我的开发机器查询链接服务器。
对我的代码进行一点小调整,允许查询在开发模式下针对链接服务器“server.database.dbo.table”而不是仅仅“dbo.table”运行。