2013-04-16 17 views
7

Próbuję połączyć się z serwerem SQL spoza domeny.Uwierzytelnianie połączenia SQL przy użyciu danych logowania AD poza domeną

Mam następujący ciąg połączenia:

SqlConnection("SERVER=Server;DATABASE=Database;User ID=Domain\User;Password=password"); 

Kiedy próbuję to wykorzystać poza domeną ten zawiedzie, ponieważ próbuje zalogować się przy użyciu uwierzytelniania SQL.

Czy istnieje sposób przekazania polecenia do łańcucha w celu użycia uwierzytelniania Active Directory.

Jakie są inne sposoby łączenia się z serwerem SQL przy użyciu szczegółów aktywnego katalogu poza domeną?

+0

czy możesz nam podać więcej szczegółów? – gasroot

+0

Czy istnieje jakiś szczególny powód, aby nie generować użytkownika SQL i używać go? – vittore

+0

Konieczne byłoby utworzenie setek użytkowników na wielu serwerach SQL. Nie było to wcześniej problemem z tą konkretną aplikacją, ale aplikacja będzie używana poza domeną. – boburob

Odpowiedz

3

albo trzeba:

  1. Zastosowanie Integrated Security w ciągu połączenia i utworzyć relację zaufania domeny między domeną zasobów serwera SQL (jeśli jest) i domeny konta (jeśli konto jest). Lub ...
  2. Utwórz konto w SQL Server i użyj tego w łańcuchu połączenia jako nazwy użytkownika i hasła.

Dokonujesz nieprawidłowego miksu, umieszczając poświadczenia domeny w pliku user/pass i nie ma nawet relacji zaufania.

EDIT:

Komentarze wskazują na konieczność synchronizacji SQL konto creds AD. To nie jest potrzebne. Konto sql jest po prostu nazwą użytkownika SQL i hasłem, które jest specyficzne dla serwera SQL i nie ma nic wspólnego z kredytami domeny. Jeśli używasz konta SQL, stają się one ustawieniem konfiguracyjnym w twojej aplikacji, które służy do konstruowania poprawnego połączenia i wysyłania przez przewód. Serwer SQL uwierzytelnia te kredyty lokalnie, nie angażując AD.

Interesujące jest również to, czy tworzysz dwuwarstwowy (gruby klient uzyskujący dostęp do sql bezpośrednio) czy trójwarstwowy (klienci uzyskują dostęp do serwera aplikacji warstwy pośredniej, który uzyskuje dostęp do sql). Jeśli jest to drugie, twoja aplikacja uwierzytelnia i autoryzuje użytkowników, a następnie używa ustawienia konfiguracyjnego z określonym przez użytkownika sql/pass w celu uzyskania dostępu do sql. Jeśli jest to pierwsze i używasz kont sql, potrzebujesz jednego na klienta i to jest problem.

+0

Ok, problem polega na tym, że aplikacja będzie używana razem z tunelem PPN VPN, co oznacza, że ​​nie ma opcji gaurentee, że podłączony komputer będzie częścią domeny, więc nie można nawet ufać tym innym domenom . Problem z tworzeniem kont SQL byłby zgodny z hasłami SQL z AD. – boburob

+0

Kto powiedział, że konto SQL musi wyrównać/być w synchronizacji z kontem AD. Nazwa użytkownika jest już inna (tylko konto - nie domena \ konto). Oznacza to, że jest to ustawienie konfiguracyjne w aplikacji, które służy do budowania łańcucha połączenia. – bryanmac

+0

Poddałem edycji odpowiedź, aby wyjaśnić – bryanmac

Powiązane problemy