| Termin | Definicja |
|---|---|
| Konfiguracja Mixed Mode | Konfiguracja Mixed Mode to ustawienie umożliwiające logowanie do SQL Server zarówno kontami Windows, jak i wewnętrznymi kontami serwera. Konfiguracja Mixed Mode — czym jest ten sposób uwierzytelnianiaKonfiguracja Mixed Mode w Microsoft SQL Server oznacza pracę w trybie, w którym możliwe jest korzystanie z dwóch niezależnych metod uwierzytelniania. Pierwszą metodą jest uwierzytelnianie Windows, wykorzystujące konto użytkownika działające w systemie operacyjnym oraz zasady kontroli dostępu obowiązujące w środowisku Windows. Drugą metodą jest uwierzytelnianie SQL Server, nazywane także uwierzytelnianiem mieszanym lub SQL Authentication. W tym wariancie dane konta, czyli nazwa logowania i hasło, są przechowywane oraz sprawdzane przez sam silnik bazy danych. Tryb Mixed Mode bywa wybierany wtedy, gdy aplikacja albo użytkownik nie może skorzystać z konta Windows, a jednocześnie wymagany jest dostęp do instancji SQL Server. Nie oznacza to jednak, że każdy użytkownik powinien otrzymać konto SQL. W dobrze uporządkowanym środowisku dobiera się metodę logowania do sposobu pracy, poziomu zaufania do urządzenia, wymagań aplikacji oraz zasad ochrony danych. Samo włączenie trybu mieszanego nie nadaje jeszcze żadnych uprawnień do baz. Umożliwia jedynie użycie dodatkowego rodzaju logowania. Warto odróżnić logowanie od autoryzacji. Logowanie odpowiada na pytanie, czy podane dane są prawidłowe. Autoryzacja określa natomiast, co po pomyślnym zalogowaniu można odczytać, zmienić albo uruchomić. Konto może więc poprawnie przejść etap uwierzytelniania, ale nadal nie mieć dostępu do konkretnej bazy, tabeli lub operacji. To rozdzielenie ma znaczenie podczas diagnozowania problemów i projektowania bezpiecznych zasad dostępu. Konfiguracja Mixed Mode a uwierzytelnianie Windows i SQL ServerW trybie Windows Authentication kontrola tożsamości jest przekazywana systemowi Windows. Użytkownik nie musi wpisywać osobnego hasła do każdej instancji, ponieważ używany jest aktualny kontekst logowania. Dostęp może być przyznawany pojedynczym kontom albo grupom systemowym. Takie podejście ułatwia centralne zarządzanie użytkownikami, odbieranie dostępu po zmianie uprawnień oraz stosowanie wspólnych wymagań dotyczących haseł i blokad kont. SQL Authentication działa inaczej. Konto jest tworzone wewnątrz SQL Server, a jego hasło podlega regułom ustawionym dla danej instancji. Taki login może być użyteczny dla starszych programów, usług działających poza domeną Windows, połączeń z urządzeń o ograniczonych możliwościach albo scenariuszy, w których nie da się przekazać tożsamości systemowej. Należy jednak pamiętać, że dodatkowe konto oznacza kolejny sekret do ochrony, rotacji i ewentualnego unieważnienia. Najczęściej tryb mieszany ustawia się podczas instalacji SQL Server albo później, w właściwościach instancji. Po zmianie sposobu uwierzytelniania zwykle konieczne jest ponowne uruchomienie usługi silnika bazy danych. Należy także zweryfikować, czy konto używane do konfiguracji ma odpowiednie uprawnienia, czy usługa działa pod właściwą instancją oraz czy aplikacja łączy się z tym samym serwerem, którego ustawienia zostały zmienione. Zmiana trybu nie naprawia błędnego adresu serwera, złej nazwy instancji ani niepoprawnego hasła. Nie powinno się traktować trybu Mixed Mode jako prostego przełącznika poprawiającego kompatybilność bez skutków ubocznych. Po jego włączeniu pojawia się możliwość używania loginów SQL, ale nadal trzeba zdecydować, które z nich są potrzebne, jak będą chronione i jaki zakres dostępu otrzymają. Szczególnej uwagi wymaga wbudowane konto sa. Jeżeli nie jest używane, bezpieczniej pozostawić je wyłączone. Jeżeli jest wymagane przez konkretną aplikację, należy ustawić silne, unikalne hasło i ograniczyć jego wykorzystanie do uzasadnionych czynności. Konfiguracja Mixed Mode — typowe problemy podczas logowaniaJednym z częstych problemów jest komunikat o błędzie logowania mimo poprawnie wpisanej nazwy użytkownika i hasła. Przyczyną może być wybrany niewłaściwy tryb uwierzytelniania, wyłączony login, zablokowane konto, wygasłe hasło albo brak mapowania loginu do konkretnej bazy. W przypadku konta SQL znaczenie ma również to, czy login został utworzony na tej samej instancji, z którą próbuje połączyć się aplikacja. Konto o identycznej nazwie w innej instancji nie daje dostępu do właściwego miejsca. Inna sytuacja występuje, gdy logowanie przebiega prawidłowo, lecz pojawia się odmowa dostępu do obiektu. Wtedy należy sprawdzić użytkownika bazy, przypisane role i uprawnienia do określonych schematów. Nie powinno się rozwiązywać takiego problemu przez nadawanie najwyższych uprawnień wszystkim kontom. Lepsze jest ustalenie, jakie operacje są rzeczywiście wykonywane, a następnie przyznanie minimalnego zakresu dostępu niezbędnego do działania programu. W praktyce zdarzają się także błędy wynikające z pomieszania nazwy loginu z nazwą użytkownika bazy. Login jest rozpoznawany na poziomie instancji, natomiast użytkownik jest powiązany z konkretną bazą. Po odtworzeniu kopii bazy na innej instancji może powstać tzw. osierocony użytkownik, czyli konto obecne w bazie, ale niepoprawnie powiązane z loginem. Objawem bywa brak dostępu pomimo istnienia konta o podobnej nazwie. W takim przypadku potrzebne jest uporządkowanie powiązania, a nie tworzenie przypadkowych nowych kont. Warto również sprawdzić ustawienia połączenia aplikacji. Program może nadal używać starej nazwy użytkownika, nieaktualnego hasła, innej instancji albo wymuszać wyłącznie Windows Authentication. Na wynik wpływają również ustawienia szyfrowania połączenia, certyfikat serwera, zapora sieciowa oraz dostępność właściwego portu. Sama konfiguracja Mixed Mode nie zastępuje prawidłowej konfiguracji komunikacji między aplikacją a SQL Server. Konfiguracja Mixed Mode — praktyczne wskazówki bezpieczeństwaPrzed włączeniem uwierzytelniania mieszanego warto przygotować listę aplikacji i użytkowników, którzy rzeczywiście potrzebują loginów SQL. Każde konto powinno mieć jasno określony cel, właściciela oraz przewidziany sposób wyłączenia. Nie należy używać jednego loginu przez wiele niezależnych programów, jeśli utrudnia to ustalenie źródła operacji. Osobne konta ułatwiają analizę zdarzeń, zmianę hasła i odebranie dostępu bez wpływania na pozostałe połączenia. Hasła loginów SQL powinny być długie, unikalne i przechowywane w sposób ograniczający dostęp osób nieuprawnionych. Nie powinny być wpisywane bezpośrednio w dokumentacji, skryptach udostępnianych wielu osobom ani plikach dostępnych dla każdego użytkownika komputera. W aplikacji należy korzystać z bezpiecznego mechanizmu przechowywania danych połączenia, o ile jest dostępny. Po zmianie hasła trzeba zweryfikować wszystkie programy i usługi korzystające z danego loginu, ponieważ nieaktualne dane mogą powodować serię nieudanych prób logowania. Przydatne jest prowadzenie okresowego przeglądu loginów. Należy usuwać lub wyłączać konta nieużywane, sprawdzać status kont, analizować historię błędów i kontrolować członkostwo w rolach. Warto też ograniczyć dostęp do narzędzi administracyjnych oraz rozdzielić konta codzienne od kont używanych do czynności uprzywilejowanych. Jeżeli konkretna aplikacja wymaga konta SQL, powinno ono otrzymać wyłącznie uprawnienia potrzebne do działania tej aplikacji, bez dostępu do niepowiązanych baz i funkcji administracyjnych. Przed zmianą trybu uwierzytelniania zaleca się wykonanie kopii konfiguracji oraz opisanie aktualnego sposobu łączenia aplikacji. Po zmianie należy przeprowadzić test logowania kontem Windows, test logowania kontem SQL, próbę połączenia z używanej aplikacji oraz kontrolę dostępu do wymaganych danych. Wyniki powinny zostać zapisane, aby można było szybko wrócić do prawidłowych ustawień w razie nieoczekiwanego zachowania. Szczególnie ważne jest wykonanie testów poza godzinami intensywnej pracy, jeśli zmiana wymaga ponownego uruchomienia usługi. Kiedy sprawdzić konfigurację Mixed Mode w serwisie komputerowymDo uporządkowania konfiguracji warto przystąpić, gdy po instalacji programu występuje błąd logowania, aplikacja nie widzi bazy mimo działającej usługi, zmiana hasła uniemożliwiła połączenie albo po odtworzeniu bazy pojawiła się odmowa dostępu. Pomocna może być również konsultacja wtedy, gdy nie jest jasne, czy problem dotyczy konta, uprawnień, nazwy instancji, ustawień sieciowych czy samej aplikacji. W takich sytuacjach potrzebne jest sprawdzenie całego łańcucha połączenia, a nie tylko pojedynczego pola z hasłem. Przy zgłoszeniu przydatne jest przygotowanie informacji o wersji systemu, używanej aplikacji, nazwie instancji, rodzaju wybranego logowania oraz dokładnej treści komunikatu. Nie powinno się przekazywać haseł w wiadomości ani zapisywać ich w publicznie dostępnych plikach. W razie problemów ze sprzętem i działaniem oprogramowania można zgłosić się do Warszawskiego Pogotowia Komputerowego 24/7. Po zakończeniu prac warto potwierdzić, że użytkownik może wykonać wymagane operacje, ale nie uzyskuje dostępu szerszego niż potrzebny. Należy także ustalić, gdzie przechowywana jest dokumentacja konfiguracji, kto odpowiada za konta oraz jak będzie wyglądała przyszła zmiana haseł. Takie podsumowanie ogranicza ryzyko powrotu tego samego problemu po aktualizacji programu, zmianie komputera lub odtworzeniu danych. |