KB4052136 - FIX: SQL Server gli eventi di controllo non vengono scritti nel log di protezione

Si applica a
SQL Server 2016 SQL Server 2019 on Windows (all editions) SQL Server 2022 on Windows (all editions)

Sintomi

Si supponga di aver configurato più eventi di controllo di SQL Server per scrivere nel log di protezione in Microsoft SQL Server 2022, Microsoft SQL Server 2019 o Microsoft SQL Server 2016 Service Pack 2 (SP2). In questo scenario si noterà che tutti i controlli del server, ad eccezione del primo, non vengono scritti. Inoltre, quando si aggiunge il secondo controllo del server, è possibile che venga visualizzato un messaggio di errore simile al seguente nel log degli errori di SQL Server:

Nota

  • Errore: 33204, gravità: 17, stato: 1.
  • Controllo di SQL Server Impossibile scrivere nel log di protezione.

Causa

Questo problema si verifica se il flag dell'origine degli eventi del Registro di sistema è impostato su 0.

Soluzione alternativa

Per risolvere il problema, utilizzare uno dei metodi seguenti:

  • Impostare gli eventi di controllo del server in modo che vengano scritti in un file anziché nel log di protezione di SQL Server.

  • Per abilitare più eventi di controllo del server per la scrittura nel log di protezione di SQL Server, modificare il valore della sottochiave del Registro di sistema seguente da 0 a 1:

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

Nota: per rendere effettiva la nuova impostazione del Registro di sistema, è necessario riavviare i controlli del server.

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

Importante

La modifica non corretta del Registro di sistema può provocare seri danni al sistema. Prima di apportare modifiche al Registro di sistema, è consigliabile eseguire il backup di tutti i dati importanti nel computer.

Risoluzione

Questo problema è stato risolto negli aggiornamenti cumulativi seguenti per SQL Server:

Nota: anche dopo aver installato SQL Server 2022 aggiornamento cumulativo 6 (CU6) o versioni successive per le istanze esistenti, è comunque necessaria una soluzione alternativa perché la correzione non modifica il valore del registro esistente. Per le nuove istanze, dopo l'applicazione della correzione verrà usato il valore del registro di sistema corretto.

Informazioni sugli aggiornamenti cumulativi per SQL Server

Ogni nuovo aggiornamento cumulativo per SQL Server contiene tutte le correzioni a caldo e di sicurezza presenti nella build precedente. È consigliabile installare la build più recente per la versione di SQL Server:

Informazioni sul Service Pack per SQL Server 2016

Questo problema è stato risolto nel seguente service pack per SQL Server:

Service Pack 2 per SQL Server 2016

Informazioni sui Service Pack per SQL Server:

I service pack sono cumulativi. Ogni nuovo service pack contiene tutte le correzioni presenti nei service pack precedenti, nonché le eventuali nuove correzioni. È consigliabile applicare il service pack più recente e l'aggiornamento cumulativo più recente per tale service pack. Non è necessario installare un Service Pack precedente prima di installare il Service Pack più recente. Utilizzare la tabella 1 dell'articolo seguente per trovare altre informazioni sul Service Pack più recente e sull'aggiornamento cumulativo più recente.

Come determinare la versione, l'edizione e il livello di aggiornamento di SQL Server e dei relativi componenti

Stato

Microsoft ha confermato che si tratta di un problema relativo ai prodotti elencati nella sezione "Si applica a".

Riferimenti

Informazioni sulla terminologia utilizzata da Microsoft per descrivere gli aggiornamenti software.