Как выполнить аутентификацию в базе данных SQL Server в домене с виртуальной машины вне домена?

Я поддерживаю веб-приложение .NET 4.0 (Visual Studio 2010), которое аутентифицируется в базе данных SQL Server 2008, которая находится в моей рабочей интрасети. Приложение аутентифицируется в базе данных, используя аутентификацию Windows. Это все прекрасно, если я разрабатываю на своем хосте, но я разрабатываю на виртуальной машине, которая не находится в рабочем домене. Таким образом, когда проект создается и запускается, он генерирует исключение SqlClient.SqlException.

«Ошибка входа в систему. Логин из ненадежного домена и не может использоваться с проверкой подлинности Windows».

За исключением разработки на моем хосте и отказа от виртуальной машины, что я могу сделать, чтобы избежать этой ошибки и успешно пройти аутентификацию в базе данных, чтобы я мог создать/запустить веб-приложение? Я готов хранить свои учетные данные где-нибудь локально, хотя желательно не где-то, что было бы под контролем источника TFS (например, web.config), потому что я не мог сохранить файл проверенным, так как в проекте есть другие разработчики.

Я попытался запустить Visual Studio от имени другого пользователя (пользователя в моем рабочем домене), но получаю сообщение об ошибке «неизвестное имя пользователя или неверный пароль».

Обратите внимание, что добавление виртуальной машины в домен (или подключение к ней через VPN) не является вариантом. ВМ должна оставаться вне домена. Также обратите внимание, что виртуальная машина работает на компьютере, который находится в домене, и виртуальная машина использует общее подключение. Таким образом, он МОЖЕТ получить доступ к интрасети, но не может выполнить проверку подлинности Windows для SQL Server.


comment
ты не можешь. Проверка подлинности ntlm требует, чтобы клиент также был частью домена. Вам придется использовать аутентификацию sql-сервера или включить эту виртуальную машину в домен.   -  person Marc B    schedule 02.11.2012


Ответы (3)


Вы можете запустить Visual Studio (или SQL Server Management Studio) от имени пользователя в домене. Хитрость в том, что вы должны использовать опцию «/netonly» инструмента «runas» для Windows, чтобы вы могли работать как пользователь домена на машине, не входящей в домен.

А именно, в командной строке вы запускаете эту команду (заполняя свои собственные критерии):

runas /netonly /user:<Domain>\<User_Name> "<Your_Program.exe>"

Кроме того, вы можете создать ярлык на рабочем столе и установить эту команду в качестве цели ярлыка. После запуска ярлыка/команды вы вводите свои учетные данные при появлении запроса, и Visual Studio (или любая другая программа, которая вам нравится) будет работать как пользователь домена.

person n00b    schedule 02.11.2012

Присоединяйтесь к домену, используя vpn-соединение, если это возможно. Vpn может связать вас с определенными учетными данными домена. Альтернативой может быть подключение с использованием аутентификации SQL Server, если SQL Server настроен на смешанную аутентификацию.

person Gregor Primar    schedule 01.11.2012

Насколько я понимаю, у вас есть несколько вариантов:

  1. Вы можете добавить учетную запись пользователя в базу данных SQL, чтобы разрешить аутентификацию по паролю.
  2. Подключите виртуальную машину к домену
  3. Создайте туннель SSH к порту хост-сервера SQL.
person TheDruidsKeeper    schedule 01.11.2012