SQL Server 2012: Security_error_ring_buffer_recorded: ImpersonateSecurityContext


10

un paio di server che gestisco registrano molti eventi nella sessione XE di system_health.

Il codice_errore 5023 dovrebbe essere ( Codici errore di sistema ):

ERROR_INVALID_STATE    5023 (0x139F)

The group or resource is not in the correct state to perform the requested operation.

Non ho eventi di accesso non riusciti nel registro di sicurezza degli eventi, né nel registro di SQL Server.


Hai contattato il supporto Microsoft o hai aperto un ticket? Sembra un errore interno.
Jon Seigel,

Qual è il numero di build dell'istanza e della versione del sistema operativo?

È un semplice SQL 2012 con SP1: 11.00.3000.00. Voglio contattare il supporto MS non appena sono sicuro che non sia un errore nella mia configurazione. Spero in un feedback qui ...
Jens W.

Risposte:


4

Presumo che tu stia cercando la definizione e la causa principale di questi eventi.

Da come funziona: SQL Server 2005 SP2 Security Ring Buffer - RING_BUFFER_SECURITY_ERROR ( archivio ) :

SQL Server 2005 SP2 ha aggiunto nuove voci del buffer dell'anello ( sys.dm_os_ring_buffers) per vari errori di sicurezza. Il motivo per cui sono state aggiunte le voci del buffer ad anello è stato quello di fornire al DBA ulteriori dettagli sul motivo per cui un client sta ricevendo un accesso non riuscito o altro errore simile.

Si afferma che non sono presenti voci di accesso non riuscite nel registro eventi né nel registro errori. Invece puoi interrogare direttamente questo ring buffer:

SELECT CONVERT (varchar(30), GETDATE(), 121) as runtime,
dateadd (ms, (a.[Record Time] - sys.ms_ticks), GETDATE()) as [Notification_Time],
a.* , sys.ms_ticks AS [Current Time]
FROM
(SELECT
x.value('(//Record/Error/ErrorCode)[1]', 'varchar(30)') AS [ErrorCode],
x.value('(//Record/Error/CallingAPIName)[1]', 'varchar(255)') AS [CallingAPIName],
x.value('(//Record/Error/APIName)[1]', 'varchar(255)') AS [APIName],
x.value('(//Record/Error/SPID)[1]', 'int') AS [SPID],
x.value('(//Record/@id)[1]', 'bigint') AS [Record Id],
x.value('(//Record/@type)[1]', 'varchar(30)') AS [Type],
x.value('(//Record/@time)[1]', 'bigint') AS [Record Time]
FROM (SELECT CAST (record as xml) FROM sys.dm_os_ring_buffers
WHERE ring_buffer_type = 'RING_BUFFER_SECURITY_ERROR') AS R(x)) a
CROSS JOIN sys.dm_os_sys_info sys
ORDER BY a.[Record Time] ASC

Il tempo di notifica potrebbe far luce sulla causa principale.

Penso che scoprirai che la data / ora delle voci si allineano con le voci di errore di accesso nel log degli errori simile a:

"Accesso non riuscito per l'utente 'dominio \ utente'. Motivo: convalida dell'accesso al server basato su token non riuscita con un errore di infrastruttura. Verificare la presenza di errori precedenti. [CLIENT:] Errore: 18456 Gravità: 14 Stato: 11."

Da Risoluzione dei problemi relativi a specifici messaggi di errore di accesso non riusciti ( archivio ) :

Lo stato 11 corrisponde a "Accesso valido ma errore di accesso al server" che indica che l'accesso è valido ma manca alcuni privilegi di sicurezza che gli concederebbero l'accesso all'istanza.

  1. Controlla se tale accesso è direttamente mappato a uno degli accessi di SQL Server guardando l'output di sys.server_principals.
  2. Se il login è direttamente mappato a uno degli accessi disponibili nell'istanza SQL, quindi verificare se il SID dell'account di accesso corrisponde al SID dell'account di accesso di Windows.

Se qualcuno ha abbandonato l'accesso a livello di Windows / AD e lo ha aggiunto di nuovo, otterrà un nuovo SID che non corrisponderà al SID che SQL ha archiviato nel suo catalogo di sistema e non riuscirà.


1
Il problema è: nuovo server, tutti gli account nuovi e posso accedere con loro. Ma tuttavia dozzine di tali eventi - senza un chiaro / alcun impatto. Proverò a leggere il ring buffer il prima possibile.
Jens W.

3
Ho riscontrato lo stesso comportamento su server non AD e non sono associati a errori di accesso o altri errori. Si sta semplicemente registrando nel buffer dell'anello di errore di sicurezza e inondazioni system_health e nessun altro motivo per cui si verifica.
Jonathan Kehayias,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.