Jaka jest różnica między Integrated Security = True a Integrated Security = SSPI?
531
Mam dwie aplikacje korzystające ze zintegrowanych zabezpieczeń. Jeden przypisuje Integrated Security = trueciąg połączenia, a drugi zestaw Integrated Security = SSPI.
Jaka jest różnica między zintegrowanym bezpieczeństwem SSPIi truew jego kontekście?
Przyjęta odpowiedź nie jest najlepsza, nie jest też w pełni poprawna. Integrated Security = Truelub SSPInie są takie same. Integrated Security=true;nie działa u wszystkich dostawców SQL, zgłasza wyjątek, gdy jest używany z OleDbdostawcą. Zasadniczo Integrated Security=SSPI;jest to preferowane, ponieważ działa zarówno z usługodawcą, jak SQLClienti OleDBdostawcą. Dodałem odpowiedź dla lepszego wyjaśnienia.
@PranavSingh ma właściwy pomysł, to pytanie jest niepełne, chyba że określisz, którego usługodawcy używasz. Różni dostawcy akceptują i / lub tłumaczą różne ciągi znaków na stany wewnętrzne.
Chociaż są one takie same, uważam, że na jednej ze stron internetowych był bardzo stary dokument, w tym czasie byłem ciekawy jak Ty, który powiedział, że jeśli tworzysz dla systemu Windows Mobile (nie to, co widzisz dzisiaj, stare urządzenia, które ja nie pamiętam sufiksu systemu operacyjnego, ponieważ nigdy go nie miałem), powinieneś używać SSPI i hasła użytkownika razem. ale ponieważ nigdy go nie napisałem i nie pamiętam źródła tego dokumentu, nie mogę tego zagwarantować.
Kiedy falseidentyfikator połączenia i hasło są określone w połączeniu. Jeśli ma wartość true, do uwierzytelnienia używane są bieżące poświadczenia konta Windows.
Uznane wartości true, false, yes,no i sspi(zalecane), która jest równoważna true.
@RodneyFoley przepraszam, moje testy potwierdzają, że ta odpowiedź jest poprawna, a twój komentarz nie. Może to kiedyś działało w ten sposób, ale teraz nie działa i nie możesz podać żadnego odniesienia do dokumentu Microsoft, który popiera Twoją opinię.
Aby połączyć się z serwerem bazy danych, zaleca się korzystanie z uwierzytelniania systemu Windows, zwanego potocznie zintegrowanym zabezpieczeniem. Aby określić uwierzytelnianie systemu Windows, możesz użyć dowolnej z dwóch poniższych par klucz-wartość z dostawcą danych. NET Framework dla SQL Server:
Ta część kodu jest własnością tylko dla jednego przypadku, który można wyjaśnić nazwą ConvertValueToIntegratedSecurityInternal. Ta właściwość jest używana tylko wtedy, gdy dostawca SqlClienttak jest SqlClient, SSPIi truesą takie same, ale nie, gdy klient jest OleDblub OracleClient. Wyjaśniłem, że w stackoverflow.com/a/23637478/704008 z referencją msdn
Zintegrowane zabezpieczenia = Fałsz: identyfikator użytkownika i hasło są określone w połączeniu. Zintegrowane zabezpieczenia = prawda: bieżące poświadczenia konta Windows są używane do uwierzytelniania.
Zintegrowane zabezpieczenia = SSPI: jest to równoważne z wartością true.
Możemy uniknąć atrybutów nazwy użytkownika i hasła z ciągu połączenia i użyć zintegrowanych zabezpieczeń
false Identyfikator użytkownika i hasło są określone w ciągu połączenia. true Poświadczenia konta Windows są używane do uwierzytelniania.
Uznane wartości true, false, yes, no, i SSPI.
Jeśli User IDi Passwordsą określone, a Zintegrowane zabezpieczenia są ustawione na true, wówczas User IDi Passwordzostaną zignorowane, a Zintegrowane zabezpieczenia zostaną użyte
Pamiętaj, że parametry połączenia są specyficzne dla tego, co i jak łączysz się z danymi. Łączą się one z tą samą bazą danych, ale pierwsza korzysta z .NET Framework Data Provider dla SQL Server. Zintegrowane zabezpieczenia = True nie będzie działać dla OleDb.
Źródło danych = .; katalog początkowy = aspnetdb; zintegrowane zabezpieczenia = prawda
Dostawca = SQLOLEDB; Źródło danych = .; Zintegrowane zabezpieczenia = SSPI; Początkowy katalog = aspnetdb
W razie wątpliwości użyj połączeń danych programu Visual Studio Server Explorer.
Prawda jest poprawna tylko w przypadku korzystania z biblioteki .NET SqlClient. Nie działa przy korzystaniu z OLEDB. Gdzie SSPI jest bvaid w obu, albo używasz biblioteki .net SqlClient lub OLEDB.
Jeśli nie używasz zintegrowanego zabezpieczenia = SSPI, musisz zakodować nazwę użytkownika i hasło w ciągu połączenia, co oznacza „względnie niepewne” dlaczego, ponieważ wszyscy pracownicy mają dostęp, nawet były pracownik może złośliwie wykorzystać informacje.
Używamy plików cookie i innych technologii śledzenia w celu poprawy komfortu przeglądania naszej witryny, aby wyświetlać spersonalizowane treści i ukierunkowane reklamy, analizować ruch w naszej witrynie, i zrozumieć, skąd pochodzą nasi goście.
Kontynuując, wyrażasz zgodę na korzystanie z plików cookie i innych technologii śledzenia oraz potwierdzasz, że masz co najmniej 16 lat lub zgodę rodzica lub opiekuna.
Integrated Security = True
lubSSPI
nie są takie same.Integrated Security=true;
nie działa u wszystkich dostawców SQL, zgłasza wyjątek, gdy jest używany zOleDb
dostawcą. ZasadniczoIntegrated Security=SSPI;
jest to preferowane, ponieważ działa zarówno z usługodawcą, jakSQLClient
iOleDB
dostawcą. Dodałem odpowiedź dla lepszego wyjaśnienia.