连接 SQL Instance/Server 没有公共域

Connecting SQL Instance/Server without common Domain

我正在开展一个小组采购项目,该项目需要一个我们都需要远程连接的 SQL 数据库。我们没有公共域或 VPN 来连接,所以我阅读了创建 SQL 服务器身份验证和 TCP 端口可以绕过这一点。

我直接在我的笔记本电脑上设置了服务器和数据库,并按照 Microsoft 文档创建了一个 TCP 固定端口,并在我的防火墙中创建了相应的规则。

然后我为 SQL 服务器身份验证创建了登录名和权限。

我在我的笔记本电脑(托管服务器的地方)和我的台式电脑(一台完全不同的电脑)上测试了登录,它们工作正常。

但是,当我的团队成员试图从他们的远程位置访问它时,我收到以下错误

A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was not accessible. Verify that the instance name is correct and that SQL Server is configured to allow remote connections.

我认为这是因为他们不会像我的台式机和笔记本电脑那样在我的家庭互联网上共享我的 IP/domain。

有什么方法可以远程连接到 SQL 数据库而无需在同一域中?

I assume this is because they don't share my IP/domain on my home internet as my desktop and laptop do.

正确。您的家庭网络受防火墙保护,不允许连接 Internet 上的主机。

出于有限的开发目的,您可以使用像 ngrok

这样的隧道解决方案

注册并下载后,假设您的 SQL 服务器在端口 1433 上,运行

PS C:\utils> .\ngrok tcp 1433            

这将通知您隧道的详细信息:

ngrok by @inconshreveable
(Ctrl+C to quit)
Session Status online
Account David Browne (Plan: Free)
Version 2.3.40
Region United States (us)
Web Interface http://127.0.0.1:4040
Forwarding tcp://4.tcp.ngrok.io:17247 -> localhost:1433
Connections ttl opn rt1 rt5 p50
p90
0 0 0.00 0.00 0.00 0.00

告诉您在连接字符串中使用 tcp:4.tcp.ngrok.io,17247

或者您可以转移到在 Internet 上托管和访问的数据库,例如 Azure SQL Database