it-swarm.com.de

SQL Server 2012: Security_error_ring_buffer_recorded: ImpersonateSecurityContext

einige von mir verwaltete Server zeichnen viele Ereignisse in der system_health XE-Sitzung auf.

Der Fehlercode 5023 sollte ( Systemfehlercodes ) sein:

ERROR_INVALID_STATE    5023 (0x139F)

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

Ich habe weder im Ereignissicherheitsprotokoll noch im SQL Server-Protokoll ein fehlgeschlagenes Anmeldeereignis.

10
Jens W.

Ich gehe davon aus, dass Sie nach der Definition und der Grundursache dieser Ereignisse suchen.

Von Funktionsweise: SQL Server 2005 SP2-Sicherheitsringpuffer - RING_BUFFER_SECURITY_ERROR ( Archiv ):

SQL Server 2005 SP2 hat neue Ringpuffereinträge hinzugefügt (sys.dm_os_ring_buffers) für verschiedene Sicherheitsfehler. Der Grund, warum die Ringpuffereinträge hinzugefügt wurden, bestand darin, dem DBA weitere Details darüber bereitzustellen, warum ein Client eine fehlgeschlagene Anmeldung oder einen anderen solchen Fehler erhält.

Sie geben an, dass Sie weder im Ereignisprotokoll noch im Fehlerprotokoll fehlgeschlagene Anmeldeeinträge haben. Stattdessen können Sie diesen Ringpuffer direkt abfragen:

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

Die Benachrichtigungszeit kann Aufschluss über die Grundursache geben.

Ich denke, Sie werden feststellen, dass das Datum und die Uhrzeit der Einträge mit Anmeldefehlern im Fehlerprotokoll übereinstimmen, ähnlich wie:

"Anmeldung für Benutzer 'Domäne\Benutzer' fehlgeschlagen. Grund: Token-basierte Serverzugriffsüberprüfung mit einem Infrastrukturfehler fehlgeschlagen. Auf vorherige Fehler prüfen. [CLIENT:] Fehler: 18456 Schweregrad: 14 Status: 11."

Von Fehlerbehebung bei bestimmten Fehlermeldungen bei fehlgeschlagener Anmeldung ( Archiv ):

Status 11 entspricht "Gültige Anmeldung, aber Serverzugriffsfehler" , was darauf hinweist, dass die Anmeldung gültig ist, aber bestimmte Sicherheitsberechtigungen fehlen, die ihm Zugriff auf die gewähren würden Beispiel.

  1. Überprüfen Sie, ob diese Anmeldung direkt einer der SQL Server-Anmeldungen zugeordnet ist, indem Sie in der Ausgabe von sys.server_principals nachsehen.
  2. Wenn die Anmeldung direkt einer der verfügbaren Anmeldungen in der SQL-Instanz zugeordnet ist, überprüfen Sie, ob die SID der Anmeldung mit der SID der Windows-Anmeldung übereinstimmt.

Wenn jemand die Anmeldung auf Windows/AD-Ebene gelöscht und wieder hinzugefügt hat, erhält er eine neue SID, die nicht mit der in seinem Systemkatalog gespeicherten SID SQL übereinstimmt, und schlägt fehl.

4
stacylaray