KB4052136 — POPRAWKA: zdarzenia inspekcji SQL Server nie są zapisywane w dzienniku zabezpieczeń

Dotyczy
SQL Server 2016 SQL Server 2019 on Windows (all editions) SQL Server 2022 on Windows (all editions)

Objawy

Załóżmy, że skonfigurowano wiele zdarzeń inspekcji SQL Server do zapisywania w dzienniku zabezpieczeń w programie Microsoft SQL Server 2022, Microsoft SQL Server 2019 lub Microsoft SQL Server 2016 z dodatkiem Service Pack 2 (SP2). W tym scenariuszu można zauważyć, że wszystkie inspekcje serwera, z wyjątkiem pierwszej inspekcji serwera, nie są zapisywane. Ponadto po dodaniu drugiego audytu serwera może zostać wyświetlony komunikat o błędzie podobny do następującego komunikatu w dzienniku błędów programu SQL Server:

Uwaga

  • Błąd: 33204, Ważność: 17, Stan: 1.
  • Inspekcja programu SQL Server nie może zapisać w dzienniku zabezpieczeń.

Przyczyna

Ten problem występuje, jeśli flaga źródła zdarzeń rejestru jest ustawiona na 0.

Obejście

Aby obejść ten problem, użyj jednej z następujących metod:

  • Ustaw zdarzenia inspekcji serwera tak, aby były zapisywane w pliku, a nie w dzienniku zabezpieczeń programu SQL Server.

  • Aby umożliwić zapisywanie wielu zdarzeń inspekcji serwera w dzienniku zabezpieczeń programu SQL Server, zmień wartość następującego podklucza rejestru z 0 na 1:

    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\EventLog\Security\MSSQL$<InstanceName>$Audit\EventSourceFlags

Uwaga: Aby nowe ustawienie rejestru zostało zastosowane, audyty serwera muszą zostać ponownie uruchomione.

ALTER SERVER AUDIT [AuditName] WITH (STATE = OFF)
GO
ALTER SERVER AUDIT [AuditName] WITH (STATE = ON)
GO

Ważne

Nieprawidłowe edytowanie rejestru może spowodować poważne uszkodzenie systemu. Przed wprowadzeniem zmian w rejestrze zalecamy utworzenie kopii zapasowej wszelkich ważnych danych przechowywanych na komputerze.

Rozwiązanie

Ten problem został rozwiązany w następujących aktualizacjach zbiorczych dla programu SQL Server:

Uwaga: Nawet po zainstalowaniu aktualizacji zbiorczej 6 (CU6) programu SQL Server 2022 lub nowszych dla istniejących wystąpień nadal wymagane jest obejście, ponieważ poprawka nie zmienia istniejącej wartości rejestru. W przypadku nowych wystąpień po zastosowaniu poprawki zostanie użyta prawidłowa wartość rejestru.

Informacje o aktualizacjach zbiorczych dla programu SQL Server

Każda nowa aktualizacja zbiorcza programu SQL Server zawiera wszystkie poprawki zabezpieczeń z poprzedniej kompilacji. Zalecamy zainstalowanie najnowszej kompilacji dla używanej wersji programu SQL Server:

Informacje o dodatku Service Pack dla programu SQL Server 2016

Ten problem został rozwiązany w następującym dodatku Service Pack dla programu SQL Server:

Service Pack 2 dla programu SQL Server 2016

Informacje o dodatkach Service Pack dla programu SQL Server:

Dodatki Service Pack są kumulatywne. Każdy nowy dodatek Service Pack zawiera wszystkie poprawki zawarte w poprzednich dodatkach Service Pack oraz nowe poprawki. Zalecamy stosowanie najnowszego dodatku Service Pack i najnowszej aktualizacji zbiorczej dla danego dodatku Service Pack. Instalowanie poprzedniego dodatku Service Pack przed zainstalowaniem najnowszego dodatku Service Pack nie jest konieczne. Więcej informacji na temat najnowszego dodatku Service Pack i najnowszej aktualizacji zbiorczej znajdziesz w tabeli 1 w następującym artykule.

Jak ustalić wersję, edycję i poziom aktualizacji programu SQL Server i jego składników

Stan

Firma Microsoft potwierdziła, że jest to problem dotyczący produktów firmy Microsoft wymienionych w sekcji „Dotyczy”.

Źródła informacji

Dowiedz się więcej o terminologii używanej przez firmę Microsoft do opisywania aktualizacji oprogramowania.