Serwisanci dostępni teraz · czynne całą dobę, także w weekendy i świętaWarszawa i okolice · dojazd bezpłatny
Darmowa diagnoza laptopa
Darmowa diagnoza laptopa
Dojazd do klienta bezpłatnie
Dojazd do klienta bezpłatnie
Laptopy zastępcze bezpłatnie
Laptopy zastępcze bezpłatnie
Odbiór i zwrot sprzętu bezpłatnie
Odbiór i zwrot sprzętu bezpłatnie

Mixed Mode Authentication

Termin Definicja
Mixed Mode Authentication

Mixed Mode Authentication to tryb dopuszczający logowanie do SQL Server zarówno kontami Windows, jak i kontami serwera.

Na czym polega Mixed Mode Authentication w SQL Server

Mixed Mode Authentication, określany w SQL Server jako SQL Server and Windows Authentication mode, pozwala używać dwóch odrębnych mechanizmów uwierzytelniania. Pierwszy z nich to Windows Authentication, w którym SQL Server korzysta z tożsamości użytkownika lub grupy zdefiniowanej w systemie Windows albo w domenie Active Directory. Drugi to SQL Server Authentication, w którym serwer bazy danych sam przechowuje login SQL Server oraz jego uwierzytelnienie za pomocą hasła. W tym trybie podczas logowania klient może więc wybrać konto systemu Windows albo konto utworzone bezpośrednio w SQL Server.

Tryb mieszany dotyczy ustawienia instancji SQL Server, a nie pojedynczej tabeli czy konkretnej bazy danych. Po włączeniu SQL Server Authentication nie oznacza to automatycznego nadania uprawnień każdemu loginowi. Uwierzytelnienie odpowiada za potwierdzenie tożsamości, natomiast autoryzacja określa, do jakich baz, schematów i obiektów dany login może uzyskać dostęp. Login serwerowy musi mieć odpowiednie mapowanie do użytkownika bazy danych lub otrzymać uprawnienia wynikające z członkostwa w roli serwerowej albo bazodanowej.

Różnica między loginem Windows a loginem SQL Server

Przy Windows Authentication SQL Server akceptuje poświadczenia wystawione przez system Windows. W praktyce można utworzyć login dla użytkownika lub grupy, na przykład za pomocą polecenia CREATE LOGIN [DOMENA\GrupaAnalityczna] FROM WINDOWS;. Hasło nie jest wtedy przechowywane jako hasło loginu SQL Server, ponieważ proces uwierzytelnienia wykorzystuje mechanizmy Windows. Jeżeli użytkownik należy do wskazanej grupy, dostęp do SQL Server może wynikać z członkostwa w tej grupie, a późniejsze uprawnienia nadaje się zwykle grupie zamiast każdej osobie osobno.

SQL Server Authentication stosuje login niezależny od konta Windows, na przykład CREATE LOGIN aplikacja WITH PASSWORD = 'Haslo-Ustalone-Wedlug-Polityki';. Rzeczywiste hasło powinno spełniać zasady bezpieczeństwa obowiązujące w danym środowisku i nie powinno być umieszczane bezpośrednio w skryptach, dokumentacji ani kodzie aplikacji. Przy tworzeniu loginu można jawnie wymagać zasad haseł systemu Windows oraz okresowej zmiany hasła, używając opcji takich jak CHECK_POLICY = ON i CHECK_EXPIRATION = ON. Login SQL Server nadal musi otrzymać właściwe uprawnienia, ponieważ samo poprawne hasło nie daje dostępu do danych.

Włączanie trybu mieszanego i kontrola konfiguracji

Ustawienie można zmienić w SQL Server Management Studio po połączeniu z instancją: w właściwościach serwera, w sekcji Security, wybiera się SQL Server and Windows Authentication mode. Zmiana trybu uwierzytelniania wymaga ponownego uruchomienia usługi SQL Server, aby nowa konfiguracja zaczęła obowiązywać. Samo przełączenie trybu nie tworzy nowych loginów SQL Server i nie zmienia uprawnień istniejących użytkowników. Przed zmianą należy więc ustalić, które aplikacje korzystają z Windows Authentication, a które z loginów SQL Server.

Bieżącą konfigurację można sprawdzić zapytaniem SELECT SERVERPROPERTY('IsIntegratedSecurityOnly') AS IsIntegratedSecurityOnly;. Wartość 1 oznacza pracę wyłącznie w Windows Authentication, natomiast wartość 0 wskazuje tryb mieszany. Stan konkretnego loginu SQL Server można kontrolować w widoku katalogowym sys.sql_logins, na przykład sprawdzając kolumny name, is_disabled, is_policy_checked i is_expiration_checked. Dla wbudowanego loginu sa można wykonać ALTER LOGIN sa DISABLE;, jeżeli nie jest potrzebny. Jeżeli istnieje uzasadniona konieczność jego użycia, login można włączyć poleceniem ALTER LOGIN sa ENABLE;, ale powinien mieć silne, unikalne hasło i nie powinien być używany przez aplikacje zamiast osobnych loginów.

Skutki wyboru Mixed Mode w praktyce

Tryb mieszany bywa potrzebny, gdy aplikacja musi łączyć się z SQL Server spoza domeny Windows albo działa w środowisku, w którym nie można użyć poświadczeń systemowych. Wprowadza jednak dodatkową powierzchnię konfiguracji: trzeba zarządzać loginami SQL Server, ich hasłami, stanem blokady, zasadami wygasania oraz sposobem przechowywania danych logowania po stronie aplikacji. Błąd „Login failed for user” nie wskazuje sam w sobie, że Mixed Mode jest wyłączony. Przyczyną może być nieistniejący login, wyłączony login, nieprawidłowe hasło, próba połączenia z niewłaściwą bazą domyślną albo brak mapowania loginu do użytkownika w wybranej bazie.

Diagnostyka powinna rozdzielać etap uwierzytelnienia od etapu autoryzacji. Najpierw sprawdza się, czy klient używa właściwego typu logowania i czy instancja SQL Server dopuszcza ten typ uwierzytelnienia. Następnie weryfikuje się login, jego status oraz domyślną bazę, a później uprawnienia użytkownika bazodanowego. W przypadku aplikacji należy przejrzeć parametry połączenia, ponieważ ustawienie Integrated Security=True lub Trusted_Connection=True oznacza użycie Windows Authentication, podczas gdy jawny parametr User ID wraz z Password wskazuje zwykle SQL Server Authentication. Nie powinno się przełączać trybu ani resetować haseł bez potwierdzenia, jaki mechanizm zakłada architektura konkretnego środowiska.

+48 22 100 48 29Zadzwoń teraz · serwisant w 1 godzinę