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:
- Zbiorcza aktualizacja 6 dla programu SQL Server 2022
- Aktualizacja zbiorcza 21 dla programu SQL Server 2019
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:
- Najnowsza aktualizacja zbiorcza dla programu SQL Server 2022
- Najnowsza aktualizacja zbiorcza dla programu SQL Server 2019
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.