OLEDB/ODBC 连接如何仅通过名称知道 SQL Server 数据库的路径?

OLEDB/ODBC 连接如何仅通过名称知道 SQL Server 数据库的路径?

如果我有这样的连接字符串,我在 Excel 中的数据连接中使用它从 SQL Server 数据库获取数据:

OLEDB;
Provider=SQLOLEDB.1;
User ID=MY_USERNAME;
Password=MY_PASSWORD;
Persist Security Info=False;
Initial Catalog=ABC;
Data Source=MY_SQL_SERVER_NAME;
Use Procedure for Prepare=1;
Auto Translate=True;
Packet Size=4096;
Use Encryption for Data=False;
Tag with column collation when possible=False

MY_SQL_SERVER_NAME我的计算机如何知道网络上的路径?

我假设这是我的公司通过某种配置文件以某种方式设置的,但我真的不知道它背后是如何运作的。

如果我从网站而不是 SQL Server 数据库获取数据,则网站资源前面需要加上这样的路径/域名:http:\\www.example.com\MY_RESOURCE_NAME.html

如果没有该路径,我就无法访问MY_RESOURCE_NAME.html。那么,如果没有前面的路径,ODBC 将如何工作MY_SQL_SERVER_NAME

我的问题是,大多数时候这个连接字符串工作正常。但是,如果我在家里使用 VPN,它就不行。但我不知道如何排除故障。

注意:我没有MY_SQL_SERVER_NAME在 Windows ODBC 数据源管理器中设置连接,因此我的计算机仅通过使用连接字符串 AFAIK 来访问 SQL Server。

答案1

ODBC 依赖于主机名解析功能,因此数据源参数需要是主机可以通过其可用机制查找的表达式。在 Windows 中,这涉及通过 SMB/CIFS、WINS、HostFile、DNS、mDNS 等进行解析。

VPN 强调您正在使用 SMB 或 DNS 命名(使用短名称,而不是 FQDN),因为当在不永久驻留在相关网络上的系统上配置时,这两者通常都需要完全限定的 DNS 名称。例如,您的主机可能指向 LAN DNS 服务器,该服务器不托管 VPN 另一端网络的区域。在这些情况下,您必须使用完全限定的域名,以便在正确的服务器上解析查询。

相关内容