| Termin | Definicja |
|---|---|
| Widok sys.syslogins | sys.syslogins to starszy widok zgodności prezentujący logowania na poziomie instancji. Widok sys.syslogins jako warstwa zgodności w SQL ServerWidok Znaczenie tego widoku wynika przede wszystkim z kompatybilności ze starszymi skryptami, narzędziami administracyjnymi i aplikacjami, które powstały przed upowszechnieniem katalogów systemowych W praktyce odczyt z tego widoku może być przydatny podczas rozpoznawania starej konfiguracji, analizowania zgodności skryptów albo porównywania zachowania różnych wersji SQL Server. Nie powinno się jednak traktować go jako jedynego źródła wiedzy o bezpieczeństwie instancji. Sam fakt występowania loginu nie przesądza o tym, jakie operacje są możliwe, ponieważ rzeczywiste uprawnienia wynikają również z członkostwa w rolach serwerowych, mapowania do użytkowników baz danych, przynależności do ról bazodanowych oraz uprawnień nadanych bezpośrednio. sys.syslogins a sys.server_principals: kontekst techniczny i porównanieNajczęściej używanym współczesnym odpowiednikiem jest W starszych skryptach można spotkać kolumny charakterystyczne dla widoku zgodności, takie jak nazwa loginu, identyfikator zabezpieczeń, status, informacja o domyślnej bazie lub domyślnym języku. Dokładny zestaw dostępnych pól i sposób ich interpretacji może zależeć od wersji silnika oraz poziomu zgodności. Z tego powodu przed przeniesieniem zapytania do innego środowiska należy sprawdzić definicję obiektu oraz potwierdzić, czy wykorzystywane kolumny zachowują oczekiwane znaczenie. Porównanie powinno obejmować nie tylko nazwy pól, lecz także zakres wyników. W jednym przypadku interesujące będą wszystkie podmioty serwerowe, w innym wyłącznie loginy umożliwiające logowanie, a jeszcze w innym powiązania z rolami i bazami domyślnymi. Przydatnym podejściem jest zbudowanie zapytania na podstawie Nie należy utożsamiać Typowe problemy przy korzystaniu z sys.sysloginsJednym z częstszych problemów jest błędne założenie, że obecność loginu oznacza aktywny i skuteczny dostęp do każdej bazy. Login funkcjonuje na poziomie instancji, natomiast użytkownik bazy danych jest odrębnym obiektem. Aby uzyskać dostęp do zasobów konkretnej bazy, potrzebne jest odpowiednie mapowanie albo członkostwo w mechanizmie, który takie mapowanie zapewnia. Brak użytkownika w bazie, wyłączony login, nieprawidłowa baza domyślna lub brak wymaganych uprawnień mogą prowadzić do odmowy logowania albo odmowy wykonania polecenia. Problemem bywa również rozbieżność między nazwą wyświetlaną a identyfikatorem zabezpieczeń. Przy kontach Windows nazwa może zmienić się po zmianie domeny, grupy lub sposobu synchronizacji, podczas gdy identyfikator pozostaje istotnym elementem rozpoznawania obiektu. Przy migracji baz i odtwarzaniu kopii zapasowych mogą wystąpić osieroceni użytkownicy, czyli użytkownicy bazodanowi bez prawidłowo dopasowanego loginu na poziomie instancji. Sam odczyt z W starszych środowiskach spotykane są też skrypty filtrujące wyniki według kolumn, których znaczenie nie jest już oczywiste. Szczególną ostrożność należy zachować przy interpretacji pól opisujących status, typ uwierzytelniania, domyślne ustawienia oraz uprawnienia administracyjne. Nazwa kolumny może sugerować prostą odpowiedź, choć rzeczywiste zachowanie zależy od wersji silnika, konfiguracji instancji i relacji z innymi obiektami katalogowymi. Nieprawidłowa diagnoza może wynikać także z odczytu niewłaściwej instancji. W środowiskach z wieloma usługami SQL Server zapytanie wykonane w jednej instancji nie opisuje automatycznie pozostałych. Przed porównaniem wyników należy zweryfikować nazwę serwera, nazwę instancji, konto wykonujące zapytanie oraz zakres widoczności metadanych. Warto zachować datę i źródło eksportu, ponieważ konfiguracja loginów może zmieniać się niezależnie od danych przechowywanych w bazach. Praktyczne wskazówki dla analizy widoku sys.sysloginsNajbezpieczniej traktować Przy tworzeniu raportu warto rozdzielić kilka pytań:
Wyniki powinny być porównywane z dokumentacją środowiska, ponieważ katalog systemowy pokazuje stan techniczny, ale nie wyjaśnia celu biznesowego każdego loginu. Konto używane przez aplikację, konto serwisowe, konto administracyjne i grupa pracowników mogą wymagać zupełnie innego sposobu oceny. Należy unikać automatycznego usuwania lub wyłączania nieznanych obiektów wyłącznie na podstawie ich nazwy. Najpierw powinno się ustalić właściciela, zależności aplikacyjne, sposób logowania i plan ewentualnego odtworzenia. Przy migracji skryptu dobrym rozwiązaniem jest przygotowanie zapytania testowego, wykonanie go w kopii środowiska lub w kontrolowanym oknie serwisowym oraz porównanie liczby i rodzaju zwracanych obiektów. Należy też sprawdzić zachowanie dla loginów SQL, kont Windows, grup Windows, wyłączonych obiektów i loginów bez mapowania do wybranej bazy. Dzięki temu można wykryć różnice, które nie były widoczne przy prostym porównaniu nazw kolumn. Kiedy zgłosić się do serwisu w sprawie sys.sysloginsDo serwisu warto zgłosić się wtedy, gdy problem z Jeżeli sam silnik SQL Server działa prawidłowo, a trudność dotyczy wyłącznie uprawnień lub interpretacji katalogu, potrzebna może być konsultacja osoby zajmującej się administracją baz danych. Warto wtedy przekazać bezpiecznie zanonimizowany wynik zapytania, wersję SQL Server, typ uwierzytelniania i opis oczekiwanego dostępu. Nie należy wysyłać haseł, kluczy ani pełnych zrzutów zawierających dane użytkowników, jeżeli nie są konieczne do analizy. Najważniejsza zasada pozostaje prosta: |