| Termin | Definicja |
|---|---|
| Widok sys.trigger_events | sys.trigger_events zawiera przypisanie typów zdarzeń do poszczególnych wyzwalaczy DDL. Widok sys.trigger_events — czym jest i do czego służyWidok W praktyce sam widok nie wykonuje żadnej kontroli i nie uruchamia wyzwalaczy. Dostarcza informacji opisowej, która pozwala ustalić, jakie zdarzenia zostały przypisane do danego wyzwalacza. Dzięki temu można prześledzić zależności zapisane w bazie, zweryfikować konfigurację mechanizmów audytowych oraz łatwiej wyjaśnić, dlaczego określona operacja administracyjna powoduje wykonanie dodatkowego kodu T-SQL. Wyniki uzyskane z sys.trigger_events w kontekście katalogów systemowych i porównań
Ważne jest odróżnienie zdarzenia od obiektu, którego zdarzenie dotyczy. Operacja Nie należy utożsamiać tego widoku z tabelą rejestrującą historię operacji. Obecność wiersza w Przy porównywaniu widoków katalogowych warto również pamiętać o zakresie widoczności metadanych. Wynik może zależeć od uprawnień osoby wykonującej zapytanie oraz od kontekstu bazy danych. Zapytanie uruchomione w niewłaściwej bazie może zwrócić pusty wynik, mimo że wyzwalacz istnieje w innej bazie na tym samym serwerze. Z tego powodu analiza powinna zawsze uwzględniać nazwę bieżącej bazy, schemat oraz poziom, na którym zdefiniowano wyzwalacz. Typowe problemy podczas analizy sys.trigger_eventsJednym z częstych problemów jest oczekiwanie, że Inną trudność stanowią zdarzenia należące do grup. Wyzwalacz może reagować na konkretny typ czynności albo na szerszą kategorię obejmującą wiele zdarzeń. W efekcie pojedyncza zmiana w schemacie może uruchomić kod, którego działanie nie było oczywiste na podstawie pobieżnej nazwy wyzwalacza. Przy diagnozowaniu należy sprawdzić zarówno wpisy jednostkowe, jak i informacje wskazujące na przynależność zdarzenia do określonej grupy. Problematyczna bywa także interpretacja braku wyników. Pusty rezultat nie musi oznaczać uszkodzenia widoku. Przyczyną może być uruchomienie zapytania w innej bazie, brak uprawnień do odczytu metadanych, filtrowanie po nieprawidłowym identyfikatorze albo fakt, że analizowany obiekt nie jest wyzwalaczem DDL. W pierwszej kolejności należy potwierdzić nazwę bazy, istnienie obiektu i jego typ. W środowisku, w którym wyzwalacze są modyfikowane przez skrypty wdrożeniowe, mogą pojawić się rozbieżności pomiędzy dokumentacją a stanem faktycznym. Zmieniony skrypt może nie zostać wykonany, zostać wykonany w innym kontekście lub utworzyć wyzwalacz o innej nazwie. Odczyt z Praktyczne wskazówki dla zapytań sys.trigger_eventsAnalizę najlepiej rozpocząć od ograniczenia wyników do konkretnego wyzwalacza. Przydatne jest pobranie identyfikatora wyzwalacza z odpowiedniego katalogu, a następnie użycie go w warunku zapytania do Warto również stosować zapytania łączące dane z nazwą wyzwalacza, nazwą schematu i nazwą obiektu nadrzędnego. Sam identyfikator jest użyteczny dla silnika bazy, ale nazwy czytelne dla człowieka znacznie ułatwiają dokumentowanie oraz późniejszą diagnostykę. W raportach można uwzględnić typ wyzwalacza, jego status, poziom przypisania i opis zdarzenia. Należy przy tym unikać nadawania znaczenia kolumnom, których interpretacja zależy od wersji SQL Server, dlatego przy zmianie środowiska zalecane jest sprawdzenie dokumentacji właściwej dla używanej wersji. Podczas testów kontrolowanych przydatne jest zapisanie stanu metadanych przed zmianą, wykonanie jednej operacji DDL, a następnie ponowne odczytanie katalogów. Pozwala to oddzielić dwie kwestie: konfigurację wyzwalacza oraz faktyczne wykonanie jego kodu. Jeśli celem jest sprawdzenie działania, trzeba dodatkowo obserwować efekt uboczny przewidziany w treści wyzwalacza, na przykład wpis w tabeli audytowej. Sam odczyt Przed wyłączeniem wyzwalacza albo zmianą przypisanych zdarzeń należy ustalić, czy nie jest on częścią procesu kontroli zmian, rejestrowania operacji lub ochrony struktury bazy. Dobrą praktyką jest przygotowanie kopii definicji, opisanie powodu modyfikacji i zaplanowanie testu po wdrożeniu. Szczególną ostrożność należy zachować wtedy, gdy wyzwalacz wykonuje operacje na wielu obiektach albo przekazuje informacje do innych elementów aplikacji. Kiedy zgłosić się do serwisu w sprawie sys.trigger_eventsWsparcie techniczne może być potrzebne, gdy zmiana struktury bazy powoduje nieoczekiwane komunikaty, dodatkowe wpisy w tabelach, blokady albo opóźnienia, a źródło problemu nie jest widoczne w samym poleceniu DDL. W takiej sytuacji analiza Do serwisu komputerowego można zgłosić się także wtedy, gdy potrzebne jest uporządkowanie konfiguracji SQL Server na komputerze firmowym, odzyskanie dostępu do narzędzi administracyjnych albo sprawdzenie, czy problem wynika z bazy, systemu lub uszkodzonego nośnika. Warszawskie Pogotowie Komputerowe 24/7 realizuje naprawy z reguły do 3 dni roboczych. Przed przekazaniem sprzętu zalecane jest przygotowanie kopii ważnych danych oraz zanotowanie zmian, po których pojawiły się trudności. Jeżeli wynik zapytania jest pusty mimo potwierdzonego istnienia wyzwalacza, pojawiają się błędy uprawnień albo nie można jednoznacznie ustalić zakresu działania obiektu, potrzebna może być szersza diagnostyka. Obejmuje ona sprawdzenie kontekstu bazy, uprawnień, definicji modułów, zależności pomiędzy obiektami oraz dzienników zdarzeń. Takie uporządkowane podejście ogranicza ryzyko przypadkowego usunięcia mechanizmu, który pełni funkcję kontrolną, i pozwala bezpieczniej przywrócić prawidłowe działanie środowiska. |