Как получить доступ к SQL Server 2005 ИЗ гостевой ОС XP, работающей на Virtual PC

Я использую свою хост-ОС - Win 7 x64 и использую экземпляр SQL Server 2005 (разработчик, x64). Я также запускаю экземпляр Virtual PC XP и без особой удачи пытаюсь подключиться к экземпляру Sql Host OS.

Я могу пинговать хост из гостевой ОС и наоборот.

Гость Virtual PC использует не сетевой адаптер NAT, а физический адаптер машины.

Я запустил инструмент настройки контактной зоны SQL Server на хосте и убедился, что локальные и удаленные подключения разрешены как для TCP / IP, так и для именованных каналов.

Я установил собственный клиент SQL Server 2005 на гостевую ОС XP, а также на SQLCMD.

Когда я выдаю: "SQLCMD -L", я вижу:

Servers:
    ROBSWIN7BOX

Однако когда я пробую "SQLCMD -S ROBSWIN7BOX", я получаю:

HResult 0x52E, Level 16, State 1
Named Pipes Provider: Could not open a connection to SQL Server [1326].
Sqlcmd: Error: Microsoft SQL Native Client : An error has occurred while establishing a connection to the server. When connecting to SQL Server 2005, this failure may be caused by the fact that under the default settings SQL Server does not allow remote connection
s..
Sqlcmd: Error: Microsoft SQL Native Client : Login timeout expired.

Я также пробовал различные SQLCMD -S .. -U sa .. -P и SQLCMD -S ... -E (SQL Server настроен для проверки подлинности в смешанном режиме).

Любые идеи? Что я упускаю из виду?

Благодарность!

Роб


person RobDemo    schedule 03.06.2009    source источник


Ответы (1)


Ошибка 0x52e: (Win32) 0x52e (1326) - Ошибка входа в систему: неизвестное имя пользователя или неверный пароль.

Вам нужна Win auth, чтобы открыть именованный канал. Убедитесь, что порт SQL открыт брандмауэром на хосте, и принудительно включите TCP в ваше соединение: SQLCDM -S tcp:ROBSWIN7BOX -U user -P pwd

person Remus Rusanu    schedule 03.06.2009
comment
Спасибо, Ремус, я добавил в правило брандмауэра исключение для входящего порта 1433. Я попытался подключиться с помощью SQLCMD и получил немного другой ответ: Sqlcmd: Ошибка: собственный клиент Microsoft SQL: не удалось завершить процесс входа в систему из-за задержки при открытии подключения к серверу. Поэтому я добавил -l 30, чтобы увеличить время ожидания входа в систему до 30 секунд. Не уверен, почему на одну и ту же коробку уходит так много времени! Спасибо - person RobDemo; 03.06.2009
comment
... Связь работает, кстати. Спасибо! Я просто хотел бы улучшить скорость. - person RobDemo; 03.06.2009
comment
Обычно это занимает так много времени, потому что сначала он пробует именованные каналы. Удалите именованные каналы из конфигурации клиента (панель управления) или принудительно установите TCP-соединение. - person Remus Rusanu; 03.06.2009