| Termin | Definicja |
|---|---|
| Wyzwalacz do audytu | Wyzwalacz do audytu rejestruje szczegóły operacji wykonanych na chronionej tabeli. Wyzwalacz do audytu – czym jest i jaką pełni funkcjęWyzwalacz do audytu jest mechanizmem zapisanym w bazie danych, który reaguje na określone zdarzenie dotyczące tabeli lub widoku. Najczęściej uruchamia się w chwili dodania nowego rekordu, zmiany istniejących wartości albo usunięcia danych. Jego zadaniem jest automatyczne utrwalenie informacji o wykonanej operacji, bez konieczności dopisywania osobnej instrukcji w każdej aplikacji korzystającej z bazy. Dzięki temu można odtworzyć podstawowy przebieg zmian i ustalić, jaki rodzaj operacji został wykonany na chronionych danych. W praktyce taki mechanizm działa podobnie do automatycznego dziennika zdarzeń. Gdy użytkownik lub program modyfikuje rekord, wyzwalacz do audytu może skopiować wybrane wartości do tabeli historii. W zależności od przyjętego projektu zapisywane bywają wartości sprzed zmiany, wartości po zmianie, identyfikator rekordu, typ operacji oraz chwila jej wykonania. Możliwe jest również uwzględnienie informacji o kontekście połączenia z bazą, na przykład identyfikatora użytkownika aplikacji albo nazwy procesu. Nie należy utożsamiać tego rozwiązania z pełnym systemem zarządzania bezpieczeństwem. Wyzwalacz do audytu odpowiada za reakcję na zdarzenie i zapis określonych danych, natomiast zasady przechowywania logów, ich przeglądanie, archiwizowanie oraz kontrola dostępu wymagają dodatkowego zaplanowania. Mechanizm ma sens wtedy, gdy wiadomo, jakie zdarzenia powinny zostać rejestrowane i w jaki sposób zapis ma później pomóc w wyjaśnieniu zmian. Wyzwalacz do audytu w kontekście technicznym i na tle innych metodW bazach relacyjnych wyzwalacze są zwykle przypisywane do konkretnej tabeli i określonego momentu wykonania operacji. Reakcja może nastąpić przed zapisem, po zapisie albo zamiast standardowej operacji, jeśli dany silnik bazy udostępnia taką możliwość. Dla audytu najczęściej stosuje się zdarzenia związane z dodawaniem, modyfikowaniem i usuwaniem rekordów. Rozdzielenie tych przypadków pozwala dokładniej opisać historię oraz odróżnić utworzenie danych od późniejszej korekty. Na tle ręcznego zapisywania historii w kodzie aplikacji wyzwalacz do audytu ma tę zaletę, że pozostaje blisko źródła danych. Zmiana wykonana przez inną aplikację, narzędzie administracyjne lub bezpośrednie zapytanie również może zostać objęta rejestracją, o ile operacja przechodzi przez mechanizm obsługiwany przez bazę. Zmniejsza to ryzyko pominięcia logowania w jednym z wielu miejsc, w których dane mogą być modyfikowane. Nie oznacza to jednak, że wyzwalacz zawsze jest rozwiązaniem najwygodniejszym. Wbudowane funkcje audytowe silnika bazy mogą oferować szerszy zakres informacji, centralne reguły oraz gotowe narzędzia do filtrowania. Z kolei dziennik transakcyjny może być lepiej dopasowany do odtwarzania technicznego przebiegu operacji, ale nie musi mieć formy czytelnej dla osoby analizującej historię konkretnego rekordu. Wybór zależy od celu: kontrola zmian biznesowych, wykrywanie nietypowych działań, odtworzenie wartości pól czy przygotowanie danych do przeglądu. Trzeba też uwzględnić różnicę między logowaniem zdarzenia a blokowaniem operacji. Wyzwalacz do audytu może zapisać fakt próby zmiany, ale sam w sobie nie powinien być traktowany jako pełny mechanizm autoryzacji. Jeżeli modyfikacja ma zostać odrzucona, potrzebna jest osobna reguła walidacyjna lub kontrola uprawnień. Audyt służy przede wszystkim rozliczalności i późniejszej analizie. Wyzwalacz do audytu a typowe problemy projektoweJednym z częstszych problemów jest rejestrowanie zbyt małej ilości informacji. Sam wpis „zmieniono rekord” może nie wystarczyć do wyjaśnienia sytuacji. Warto rozważyć zapisanie klucza rekordu, rodzaju operacji, czasu wykonania oraz pól istotnych z punktu widzenia kontroli. Przy zmianach szczególnie wrażliwych przydatne bywa przechowywanie pary wartości: poprzedniej i nowej. Należy jednak zachować umiar, ponieważ kopiowanie całych wierszy może szybko zwiększyć rozmiar tabeli historii. Innym problemem jest niepełne objęcie tabeli regułami. Zdarza się, że audyt obejmuje modyfikacje, ale pomija usuwanie, albo rejestruje dodawanie, lecz nie rozróżnia źródła operacji. Przed wdrożeniem warto sporządzić listę scenariuszy i sprawdzić każdy z nich osobno. Należy także zweryfikować operacje wykonywane masowo, ponieważ pojedyncza instrukcja może dotyczyć wielu rekordów i wygenerować dużą liczbę wpisów. Wyzwalacz do audytu może również wywołać niepożądane efekty uboczne. Dodatkowy zapis obciąża bazę, wydłuża transakcję i może powiększać zakres blokad. Jeżeli tabela historii jest modyfikowana przez kolejny wyzwalacz, łatwo o trudny do śledzenia łańcuch zależności. Szczególnej ostrożności wymaga sytuacja, w której rejestrowanie zmiany powoduje kolejną zmianę podlegającą audytowi. Konstrukcja powinna wykluczać zapętlenie oraz jasno określać, które operacje są objęte zapisem. Ryzyko stanowi także niewłaściwa ochrona tabeli audytowej. Historia zmian może zawierać dane poufne, dlatego nie powinna być dostępna dla każdego konta używanego przez aplikację. Przydatne jest rozdzielenie uprawnień do odczytu, dopisywania i usuwania wpisów. W wielu zastosowaniach usuwanie historii powinno być ograniczone do kontrolowanej procedury, a nie pozostawione zwykłym operacjom użytkowników. Wyzwalacz do audytu – praktyczne wskazówki wdrożenioweNajpierw należy zdefiniować cel audytu. Inaczej projektuje się historię zmian dla danych rozliczeniowych, inaczej dla ustawień konta, a jeszcze inaczej dla słownika wykorzystywanego przez aplikację. Trzeba wskazać, jakie pola są istotne, jak długo powinny być przechowywane wpisy oraz kto będzie je analizował. Bez takiego zakresu wyzwalacz do audytu może rejestrować wiele danych, które nie przynoszą wartości, a jednocześnie pomijać informacje potrzebne przy sprawdzaniu konkretnego przypadku. W tabeli historii warto stosować jednoznaczne nazwy kolumn i ustalić stały format zdarzeń. Przydatne pola to między innymi identyfikator wpisu, identyfikator rekordu źródłowego, typ operacji, czas wykonania oraz wartości przed i po zmianie, jeżeli są potrzebne. Warto także przewidzieć miejsce na identyfikację kontekstu użytkownika. Jeżeli aplikacja korzysta ze wspólnego konta bazy, sam techniczny użytkownik połączenia może nie wskazywać osoby, która faktycznie wykonała działanie. Po utworzeniu reguły należy przeprowadzić testy dla pojedynczych i masowych operacji. Powinno się sprawdzić, czy wpis audytowy powstaje po zatwierdzeniu transakcji, co dzieje się po wycofaniu transakcji oraz jak zachowuje się mechanizm w przypadku błędu. Ważne jest także przetestowanie wartości pustych, zmian kilku kolumn w jednym zapytaniu i usuwania rekordów powiązanych z innymi tabelami. Testy powinny obejmować zarówno oczekiwane przypadki, jak i próby wykonania operacji przez konto bez odpowiednich uprawnień. Należy zaplanować utrzymanie historii. Duża tabela audytowa powinna mieć przemyślaną strukturę indeksów, sposób archiwizacji oraz zasady ograniczania dostępu. Indeksowanie ułatwia wyszukiwanie zmian po identyfikatorze rekordu lub czasie, ale nadmiar indeksów zwiększa koszt zapisu. Przydatne jest również okresowe sprawdzanie, czy wyzwalacz nadal istnieje, jest aktywny i odpowiada aktualnej strukturze tabeli. Kiedy sprawdzić wyzwalacz do audytu w praktyceAnaliza takiego mechanizmu jest wskazana, gdy nie da się ustalić, kto lub jaki proces zmienił dane, gdy historia nie zawiera wcześniejszych wartości albo gdy liczba wpisów audytowych gwałtownie rośnie. Warto również zweryfikować konfigurację po migracji bazy, zmianie aplikacji, odtworzeniu kopii zapasowej lub przebudowie tabel. W takich sytuacjach wyzwalacz do audytu może zostać pominięty, wskazywać nieaktualne kolumny albo działać inaczej niż przed zmianą. Przegląd techniczny przydaje się także wtedy, gdy operacje na tabeli zaczynają trwać dłużej. Przyczyną może być rozbudowana logika wyzwalacza, brak odpowiednich indeksów, nadmierna liczba kopiowanych danych lub blokady związane z tabelą historii. Sprawdzenie definicji, planów wykonywania i zachowania podczas obciążenia pomaga odróżnić problem samego audytu od problemu aplikacji. W razie trudności ze stacją roboczą, oprogramowaniem bazodanowym lub przygotowaniem środowiska do bezpiecznej diagnostyki można skorzystać z pomocy firmy Warszawskie Pogotowie Komputerowe 24/7. W ramach serwisu przewidziano darmową diagnozę laptopa, co może ułatwić ustalenie, czy kłopot wynika z konfiguracji urządzenia, systemu lub narzędzia używanego do pracy z bazą. Przed modyfikacją reguł audytowych zaleca się wykonanie kopii danych, opisanie aktualnej konfiguracji i zachowanie informacji o przeprowadzonych testach. |