Logowanie do Microsoft SQL Server przy użyciu poświadczeń Active Directory

14

Nasze serwery Microsoft SQL działają na serwerach Windows, które są częścią domeny Active Directory.

Aby ułatwić zarządzanie użytkownikami, konfiguracja autoryzacji SQL odbywa się za pomocą grup użytkowników usługi Active Directory, jak wyjaśniono w tym poście .

Teraz działa to dobrze, dopóki wszyscy pracują w domenie. Ludzie logują się na komputer przy użyciu poświadczeń AD i mogą łączyć się z serwerem SQL przy użyciu „Uwierzytelniania systemu Windows”.

Problem polega na tym, że nasi użytkownicy będą również pracować na innych komputerach klienckich, które nie są częścią domeny Active Directory (a dodanie ich do domeny nie jest opcją).

Miałem nadzieję, że mogą po prostu używać swoich poświadczeń AD do logowania się na serwerze przy użyciu uwierzytelniania AD, jak wspomniano na ekranie logowania do SQL Server.

Ekran logowania do SQL Server

Nie wydaje się to jednak działać.

Logowanie za pomocą Acive Directory Password Authentication powoduje problemy z certyfikatem. Błąd: „Łańcuch certyfikatów został wydany przez organ, który nie jest zaufany”.

Cannot connect to x.x.x.x.

===================================

A connection was successfully established with the server, but then an error occurred during the login process. (provider: SSL Provider, error: 0 - The certificate chain was issued by an authority that is not trusted.) (.Net SqlClient Data Provider)

------------------------------
For help, click: http://go.microsoft.com/fwlink?ProdName=Microsoft%20SQL%20Server&EvtSrc=MSSQLServer&EvtID=-2146893019&LinkId=20476 (page does not exist)

Co dziwne, jeśli przejdę do ustawień „opcji” w oknie logowania i zaznaczę pole „zaufaj certyfikatowi serwera”. Nagle NIE jestem w stanie połączyć się z serwerem i po prostu pojawia się błąd.

Cannot connect to x.x.x.x.

===================================

Login failed for user ''. (.Net SqlClient Data Provider)

Czy konfiguracja, którą chcę osiągnąć, jest możliwa? A jeśli tak, jak mogę to osiągnąć? :)

Podsumowując: Serwery SQL działają w domenie AD, użytkownicy mają poświadczenia AD, ale muszą także mieć możliwość logowania się z komputerów klienckich NIE będących częścią domeny AD za pomocą swoich poświadczeń AD.

Gilles Lesire
źródło
Otwórz C:\WINDOWS\system32\cliconfg.exei sprawdź, czy szyfrowanie protokołem wymuszonym jest włączone. Jeśli jest wyłączony
Drifter104
Nie, to nie jest włączone.
Gilles Lesire
2
Ciekawy problem. Wydaje się to prawidłowe: runas /netonly /user:domain\username "c:\path\ssms.exe" mssqltips.com/sqlservertip/3250/…
Michał Sokołowski

Odpowiedzi:

11

Komunikat o błędzie jest taki, że certyfikaty zostały wydane przez niezaufany organ. Najprawdopodobniej byłaby to Twoja domena AD.

Kilka obejść, które możesz spróbować:

  1. Ten post dba.stackexchange.com sugeruje kliknięcie przycisku opcji w oknie połączenia powyżej i dodanie w TrustServerCertificate=Truesekcji Dodatkowe parametry połączenia. To w zasadzie mówi SSMS, że tak, wiesz, po prostu zrób to.
  2. Jeśli to nie zadziała, ten post dba.stackexchange.com sugeruje użycie run w celu oszukiwania systemu Windows. Na przykład, runas /netonly /user:domain\username "C:\path_to\ssms.exe"nigdy nie robiłem tego z SSMS, ale warto spróbować, ponieważ OP wydaje się być w podobnej sytuacji do ciebie (i ufam, że facet odpowiada).

W każdym razie, mam nadzieję, że jedno z tych obejść załatwi sprawę.

Katherine Villyard
źródło
1
Pierwsze rozwiązanie nie zadziałało, zostało już zaadresowane w moim pytaniu. Wydaje się, że drugie rozwiązanie działa, chociaż po zalogowaniu nadal wyświetla nazwę mojego okna obok połączenia, muszę wykonać kilka testów, czy to faktycznie konto domeny i czy działa poprawnie, jak się spodziewano. Skrzyżowane palce.
Gilles Lesire,
Jeśli runy działają, czy można uniknąć wiersza polecenia? Nie wszyscy nasi użytkownicy są zaawansowani technologicznie.
Gilles Lesire,
3
Może mógłbyś stworzyć niestandardowy skrót? Właśnie przetestowałem to sam, dodając runas /netonly /user:domain\username do początku ciąg skopiowanego skrótu. Działało dobrze, chociaż pojawił się także wiersz polecenia, w którym mogli wprowadzić swoje poświadczenia.
Katherine Villyard
Lub użyć Sysinternals ShellRunAs
Noam
1

Najprostszym sposobem jest kliknięcie prawym przyciskiem myszy „Microsoft SQL Server Management Studio” - „więcej” wybierz „Uruchom jako inny użytkownik”. To zadziałało dla mnie. Pomyślałem, że jeśli wybiorę „Active Directory - hasło” z ekranu logowania, zrobiłbym to samo, ale ... niestety nie.

Piotr V.
źródło