Próbuję połączyć się ze zdalnym programem SQL Server w sieci VPN w innej domenie. Kiedy wprowadzam nazwę serwera na serwerze SQL i wybieram dodatkowe parametry połączenia, aby dodać dodatkowe rzeczy potrzebne mojej szkole:
Integrated Security=SSPI; User ID=DOMAIN\username; Password=Password
Otrzymuję następujący błąd:
Logowanie nie powiodło się. Login pochodzi z niezaufanej domeny i nie można go używać z uwierzytelnianiem systemu Windows.
sql-server
authentication
logins
fxuser
źródło
źródło
Odpowiedzi:
Próbujesz przekazać poświadczenia systemu Windows zwykłym tekstem z ciągu połączenia aplikacji. To po prostu nie działa uwierzytelnianie systemu Windows i w dużej mierze jest to sprzeczne z celem.
Nie możesz też po prostu stworzyć tej samej nazwy użytkownika z tym samym hasłem we własnej domenie i oczekiwać, że zadziała to magicznie. Nazwa domeny jest nadal częścią sprawdzania poprawności - komputer musi być częścią domeny lub domena, w której znajduje się komputer, musi być zaufana przez domenę szkoły.
Jedyne obejście, jakie znam, dotyczy SSMS i taka jest
runas /netonly
sztuczka opisana w tej odpowiedzi . Powoduje to oszukanie systemu Windows do uruchamiania SSMS jako określonego przez Ciebie loginu, a nie własnego (nie jest to coś, co można ustawić w oknie dialogowym Właściwości połączenia SSMS, chodzi o to, jak uruchomić SSMS z wiersza polecenia lub skrótu):Spowoduje to monit o podanie hasła w domenie zdalnej. Będzie to wyglądać tak jak to jest przy użyciu lokalnych poświadczeń systemu Windows, ale nie jest .
Możliwe, że będzie również działać z Visual Studio, ale tak naprawdę nie wiem.
Twoje opcje to:
runas /netonly
sztuczkę z Visual Studiorunas /netonly
sztuczki z SSMSźródło
runas
Sprawa ma pracować z Visual Studio.Jest inny sposób, którego teraz używam zamiast
runas /netonly
metody.Możesz dodać poświadczenia do swojego profilu w systemie Windows za pomocą Menedżera poświadczeń znajdującego się w panelu sterowania systemu Windows.
Wypełnij pole „adres internetowy lub sieciowy” nazwą i numerem portu instancji SQL, dla której chcesz przechowywać poświadczenia.
Przykład:
UniServer:1433
(1433 jest domyślnym portem, możesz potrzebować innego portu, szczególnie jeśli łączysz się z nazwaną instancją)MYDOMAIN\MYUSER
)Jeśli masz poprawną nazwę serwera, port i dane logowania, powinieneś być teraz w stanie korzystać z uwierzytelniania systemu Windows z większości narzędzi klienckich, SSMS, Excel, cokolwiek. Wszystkie wykorzystają zapisane poświadczenia.
Wskazówka: Czasami trzeba użyć nazwy FQN dla serwera podczas dodawania poświadczeń. np
UniServer.UniDomain.org:1433
. wszystko zależy od specyfiki sieci.Oto krótkie demo metody: http://youtu.be/WiVBPsqB9b4
Jest to zrzut ekranu, w którym próbuję (i nie udaje mi się) połączyć z serwerem SQL Server uruchomionym na maszynie wirtualnej z mojego pulpitu, a następnie dodać wymagane poświadczenia i spróbować ponownie - z powodzeniem.
Wskazówka: użyj polecenia „cmdkey / add”, aby utworzyć skrypt i zaktualizować zapisane poświadczenia.
źródło