| Termin | Definicja |
|---|---|
| Uwierzytelnianie SQL | Uwierzytelnianie SQL wykorzystuje konta zdefiniowane wewnątrz serwera, niezależne od systemu operacyjnego. Na czym polega uwierzytelnianie SQL ServerUwierzytelnianie SQL w Microsoft SQL Server polega na sprawdzaniu nazwy logowania i hasła zapisanych w samym silniku bazy danych. Takie konto jest niezależne od kont użytkowników systemu Windows. Logowanie może więc zostać wykonane przy użyciu loginu utworzonego w SQL Server, nawet jeśli osoba korzystająca z aplikacji nie ma odpowiadającego mu konta w systemie operacyjnym. Login jest obiektem poziomu instancji, natomiast dostęp do konkretnej bazy danych uzyskuje się przez powiązanie go z użytkownikiem bazy danych. Po pomyślnym uwierzytelnieniu SQL Server ustala również uprawnienia danego loginu. Samo zaakceptowanie hasła nie oznacza automatycznie prawa do odczytu lub zmiany wszystkich danych. W bazie tworzy się użytkownika powiązanego z loginem, a następnie nadaje mu uprawnienia bezpośrednio albo przez członkostwo w rolach bazodanowych. Rozdzielenie loginu i użytkownika pozwala kontrolować dostęp zarówno do instancji, jak i do poszczególnych baz. Tryb działania, loginy i hasłaMicrosoft SQL Server może działać w trybie Windows Authentication albo w trybie mieszanym, określanym jako SQL Server and Windows Authentication mode. Uwierzytelnianie SQL jest dostępne tylko wtedy, gdy instancja została skonfigurowana do obsługi trybu mieszanego. Zmiana tego ustawienia wymaga modyfikacji właściwości serwera i ponownego uruchomienia usługi SQL Server, aby nowy tryb został zastosowany. Login SQL Server ma własne hasło oraz ustawienia związane z polityką haseł. Przy tworzeniu lub zmianie loginu można wymagać kontroli złożoności hasła i jego okresowej zmiany, korzystając z mechanizmów obsługiwanych przez system Windows. Można także ustawić wygaśnięcie hasła albo zablokowanie loginu. W praktyce błędne hasło, wyłączony login, brak dostępu do wskazanej bazy lub użycie nieobsługiwanego trybu uwierzytelniania mogą powodować nieudane połączenie aplikacji z bazą. Przebieg połączenia aplikacji z baząAplikacja korzystająca z uwierzytelniania SQL przekazuje do sterownika nazwę serwera lub instancji, nazwę bazy, login oraz hasło. Sterownik ustanawia połączenie z SQL Server, a silnik weryfikuje login na poziomie instancji. Jeżeli dane są poprawne, SQL Server sprawdza, czy login ma użytkownika w wybranej bazie i czy ten użytkownik posiada wymagane uprawnienia. Brak mapowania loginu na użytkownika może skutkować błędem dostępu mimo poprawnego hasła. Podczas diagnozowania problemu należy rozdzielić kilka etapów. Najpierw sprawdza się, czy klient dociera do właściwej instancji SQL Server i czy usługa nasłuchuje na oczekiwanym adresie oraz porcie. Następnie weryfikuje się, czy instancja dopuszcza uwierzytelnianie SQL, czy login jest aktywny i czy hasło nie wygasło. Kolejny etap obejmuje sprawdzenie nazwy bazy, użytkownika bazodanowego oraz przydzielonych ról i uprawnień. Komunikat o odrzuconym loginie wskazuje inny problem niż komunikat o braku uprawnienia do obiektu w już otwartej bazie. Kontrola dostępu i diagnostyka konfiguracjiUwierzytelnianie SQL powinno być oceniane razem z autoryzacją, ponieważ te mechanizmy odpowiadają za różne decyzje. Uwierzytelnianie potwierdza tożsamość loginu, a autoryzacja określa, jakie operacje może on wykonać. Login przypisany do roli o szerokich uprawnieniach może odczytywać, modyfikować lub usuwać dane, natomiast login używany przez aplikację może otrzymać tylko uprawnienia wymagane przez jej funkcje. Szczególnej kontroli wymaga konto Podczas serwisowania laptopa lub komputera PC problem z uwierzytelnianiem SQL może wynikać z błędnego pliku konfiguracyjnego aplikacji, zmienionego hasła, odinstalowania składników klienta albo połączenia z inną instancją niż wcześniej. Należy porównać nazwę serwera, nazwę instancji, bazę docelową i sposób uwierzytelniania, a także sprawdzić dzienniki SQL Server oraz komunikat zwracany przez aplikację. |