如何为 SQL Server 访问配置 ngrok

Posted

技术标签:

【中文标题】如何为 SQL Server 访问配置 ngrok【英文标题】:How to configure ngrok for SQL Server access 【发布时间】:2021-05-28 11:57:05 【问题描述】:

我想针对我本地计算机上的 sql 服务器实例测试托管在远程位置的开发中的网站。我在想我可以在本地运行 ngrok 并适当地更新远程网站上的连接字符串,但我不确定我需要指定哪些参数。

我试过ngrok tcp 12345ngrok http 12345

在 SQL Server 配置管理器中,我为我要使用的 SQL Express 实例启用了 TCP/IP,并将端口设置为侦听 12345(实际上是一个不同的数字,但我们会说 12345这个帖子)。然后我重新启动了 SQL Server。

我认为我没有必要在防火墙上打洞,但以防万一我在测试时暂时完全禁用了它。

为了在本地进行测试,我将 ngrok 提供的 url 放入 SQL Management Studio 的连接对话框中,但无法连接。

我错过了什么?

【问题讨论】:

【参考方案1】:
    设置 Ngrok 在 SQL 端口上的 tcp 上运行 ngrok(默认为 1433) ngrok tcp 1433

你会得到一个类似tcp://3.tcp.ngrok.io:12345的网址

在“连接到服务器对话框”中输入:

服务器名称:3.tcp.ngrok.io,12345 注意端口和 url 之间的逗号。输入不带tcp:// 的网址 登录:您的普通用户,在我的情况下为 sa 和您的密码 连接

【讨论】:

【参考方案2】:

ngrok 为 TCP 隧道生成的“URL”可能不应该在未经修改的情况下使用。 tcp:// 方案部分不是我认为常用的 URI 方案。只有生成的 ngrok“URL”的主机名和端口部分在 SQL Server 连接配置中有用。

不熟悉 SQL Management Studio 中引用的连接对话框,很难确切地说出预期的输入,但也许去掉 tcp:// 方案就可以解决问题?

【讨论】:

是的,两种方法我都试过了。通常使用 IP 地址,您只需输入没有方案的 IP 地址。但是你让我想到我至少可以尝试从同一网络上的另一台计算机连接到我的 SQL 实例,并排除 SQL 配置是一个问题。 您是否能够从同一网络上的另一台计算机@BVernon 进行连接? 我没有得到它,我不再需要。在某个时候,当我有时间时,我可能会因为好奇而对其进行测试,但目前有点忙,这对我来说不再是一个阻塞问题。如果/当我发现任何东西时,我会来更新帖子。我会提到,虽然我现在使用的连接字符串像这样“”Data Source=tcp:subdomain.domian.com;”开始,但我以前没有尝试过在没有管理工作室的双斜杠的情况下这样做,所以可能就这样吧。 另一方面,我从来没有用“tcp:”开始一个连接字符串,我怀疑它可以被省略,但我只是使用了我的网络主机指定的字符串。

以上是关于如何为 SQL Server 访问配置 ngrok的主要内容,如果未能解决你的问题,请参考以下文章

如何为 SQL Server Windows 身份验证配置 Squirrel SQL

如何为 SQL Server(Windows 身份验证)配置 Spring XML?

如何为SQL Server2008添加登录账户并配置权限

如何为SQL Server2008添加登录账户并配置权限

EF 5 + SQL Server CE 4:如何为数据库文件指定自定义位置?

如何为不同的 SQL Server 文件夹运行相同的 angularjs 应用程序(.NET MVC 5)?