Ważne jest posiadanie bezpiecznego środowiska, egzekwowanie zasady najmniejszych uprawnień w swoich serwerach i bazach danych, ale może to być trudne do osiągnięcia w dużych środowiskach, gdzie wiele osób ma podwyższone uprawnienia lub kilka osób ma uprawnienia do wykonywania zadań nad danymi lub schematem.

Jako dodatkowy środek, dziennik audytu powinien być zaimplementowany w tych scenariuszach i często je przeglądać.

SQL Server zapewnia funkcjonalność implementacji logów audytu na poziomie serwera i bazy danych. Począwszy od wersji SQL Server 2008, wszystkie edycje SQL Server obsługują audyty na poziomie serwera. Audyty na poziomie bazy danych są obsługiwane począwszy od SQL Server 2016 (13.x) SP1. Wcześniej audyt na poziomie bazy danych był ograniczony do edycji Enterprise, Developer i Evaluation.

W tym poście pokażę, jak skonfigurować i wyświetlić dzienniki audytu:

Implement Audit Log

W zakładce Security, przejdź do Audits i wybierz New audit…

Zdefiniuj nazwę audytu i wybierz miejsce docelowe audytu (osobiście preferuję lokalizację pliku).
Wybierz pożądane parametry i kliknij OK.

Audyt jest teraz utworzony, aby działał wystarczy włączyć audyt.
UWAGA: przed dokonaniem jakichkolwiek zmian w konfiguracji audytu, będziesz musiał go najpierw wyłączyć.

Implement Server Level Audit

Utworzyliśmy naszą lokalizację audytu, teraz przejdziemy do tworzenia działań, które chcemy audytować na poziomie serwera.

W folderze Security, zlokalizuj Specyfikacje Audytu Serwera, kliknij prawym przyciskiem myszy i wybierz Nowa Specyfikacja Audytu Serwera….

W następnym oknie określ nazwę audytu (możesz mieć więcej niż jedną) i wybierz audyt utworzony w poprzednim kroku.

Wybierz akcję lub akcje, które mają być audytowane. Aby sprawdzić co jest zawarte w każdej akcji, proszę przeczytać tutaj z dokumentacji Microsoft.

Gdy skończysz kliknij OK, aby utworzyć specyfikację audytu.
Dla tego przykładu po prostu włączyłem akcję DBCC do audytu (jak zobaczymy później w tym poście)

Specyfikacja audytu jest również utworzona wyłączona, aby działała, włącz ją jak pokazano na obrazku.

UWAGA: przed wprowadzeniem jakichkolwiek zmian w specyfikacji audytu, należy ją najpierw wyłączyć.

Implement Database Level Audit

Proces jest stosunkowo taki sam, aby utworzyć specyfikację audytu na poziomie bazy danych, główną różnicą jest to, że opcja znajduje się w folderze Security na każdej bazie danych.

Kliknij prawym przyciskiem myszy na folderze Database Audit Specification, a następnie New Database Audit Specification…

Wybierz nazwę audytu bazy danych i miejsce docelowe audytu (to samo utworzone w pierwszym kroku dla tego przykładu).
Inną kluczową różnicą dla Audytu bazy danych jest to, że musimy wybrać obiekt lub schemat, który chcemy sprawdzić.
Wybierz akcje do audytu (możesz zobaczyć opis dla każdej z nich tutaj), a następnie kliknij Ok.

W tym przykładzie wykonam audyt polecenia SELECT dla tabeli o nazwie Kurs w przykładowej bazie danych Szkoła.

Po utworzeniu specyfikacji audytu, musisz włączyć go do działania.

UWAGA: przed dokonaniem jakichkolwiek zmian w konfiguracji audytu, musisz go najpierw wyłączyć.

Przeglądanie logów audytu

Mając skonfigurowane i działające audyty to tylko połowa pracy, nie będzie to nic warte, jeśli nie będziesz proaktywnie przeglądał logów często.
Istnieją 2 opcje przeglądania logów, używając SSMS i T-SQL

Dla tego przykładu wykonałem kilka zdań, aby uruchomić audyty serwera i bazy danych skonfigurowane powyżej, więc możemy zobaczyć niektóre dane.

SSMS

Aby sprawdzić logi zdarzeń używając Management Studio, wystarczy wybrać utworzony Audyt, kliknąć na nim prawym przyciskiem myszy i wybrać opcję View Audit Logs

Dziennik audytu wyświetli się w typie logu SQL Server, i możesz zobaczyć kilka przykładów, które wywołałem

T-SQL

Do użycia tej opcji używasz sys. DMF.fn_get_audit_file, określając lokalizację pliku, a dla nazwy pliku użyj *.sqlaudit, aby uwzględnić wszystkie pliki.

To jest zapytanie, którego używam dla tego przykładu:

SELECT event_time,action_id,statement,database_name,server_principal_name 
FROM sys.fn_get_audit_file ('C:\TestAudit_*.sqlaudit',default,default);

Wyjście zapytania wygląda następująco:

Zaznaczyłem na żółto akcje, które zostały uchwycone w specyfikacji bazy danych.

Z tą informacją jesteś dobry, aby przejść do konfigurowania własnych audytów dla twoich serwerów krytycznych dla misji i często je przeglądać, również możesz zaimplementować logikę alertów lub automatycznego raportowania, aby być powiadamianym o podejrzanej aktywności.

.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany.