2

Если у меня есть такая строка подключения, которую я использую в Data Connection в 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 в администраторе источника данных ODBC Windows, поэтому мой компьютер каким-то образом обращается к SQL Server, используя только строку подключения AFAIK.

1 ответ1

2

ODBC полагается на возможности разрешения имен хостов, поэтому аргумент источника данных должен быть выражением, которое хост может искать через доступные механизмы. В Windows это включает разрешение через SMB/CIFS, WINS, HostFile, DNS, mDNS и т.д.

VPN подчеркивает, что вы используете именование SMB или DNS (с коротким именем, а не полным доменным именем), поскольку для обоих из них, как правило, требуются полные DNS-имена при настройке в системах, которые постоянно не находятся в рассматриваемой сети. Например, ваш хост, скорее всего, указывает на DNS-сервер локальной сети, который не размещает зону для сети на другой стороне VPN. в этих случаях вы должны использовать полное доменное имя, чтобы запрос был разрешен на правильном сервере.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .