SQL Server 2012: Security_error_ring_buffer_recorded: ImpersonateSecurityContext


10

кілька серверів, якими я керую, записують багато подій у сесії system_health XE.

Код помилки 5023 повинен бути ( Коди помилок системи ):

ERROR_INVALID_STATE    5023 (0x139F)

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

У мене немає невдалої події входу в журнал безпеки подій, а також у журналі SQL Server.


Ви зв’язалися зі службою підтримки Microsoft або відкрили квиток? Це виглядає як внутрішня помилка.
— Джон Сейгель

Який номер збірки вашого примірника та версії ОС?

Це звичайний SQL 2012 з SP1: 11.00.3000.00. Я хочу зв’язатися з службою підтримки MS, як тільки я впевнений, що це не помилка в моїх налаштуваннях. Сподіваючись на зворотній зв'язок тут ...
— Jens W.

Відповіді:


4

Я припускаю, що ви шукаєте визначення та першопричину цих подій.

Про те, як це працює: Захисний зворотний буфер кільця SQL Server 2005 - RING_BUFFER_SECURITY_ERROR ( архів ) :

SQL Server 2005 SP2 додав нові записи буфера кільця ( sys.dm_os_ring_buffers) для різних помилок безпеки. Причиною, що були додані записи кільцевого буфера, було надання DBA додаткової інформації про те, чому клієнт отримує невдалий логін або іншу таку помилку.

Ви заявляєте, що у вас немає жодних невдалих записів входу в журналі подій, а також в журналі помилок. Натомість ви можете запитувати цей буфер кільця безпосередньо:

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

Час сповіщення може пролити деяке світло на першопричину.

Думаю, ви побачите, що дата / час записів буде відповідати записам відмов у вході в журналі помилок, подібному до:

"Не вдалося ввійти для користувача" домен \ користувач ". Причина: Не вдалося перевірити доступ до сервера на основі маркера через помилку інфраструктури. Перевірте наявність попередніх помилок. [КЛІЄНТ:] Помилка: 18456 Серйозність: 14 Стан: 11."

З питань усунення неполадок, пов’язаних із входом у систему Повідомлення про помилки ( архів ) :

Стан 11 відповідає "Дійсному входу, але невдача доступу до сервера", що вказує на те, що вхід є дійсним, але не має певних привілеїв безпеки, які надавали б йому доступ до цього примірника.

  1. Перевірте, чи вказано цей вхід безпосередньо в одному з входів SQL Server, заглянувши у вихідні дані sys.server_principals.
  2. Якщо вхід безпосередньо відображено на одному з доступних вхідних даних в екземплярі SQL, перевірте, чи відповідає SID входу в систему SID входу в Windows.

Якщо хтось упустив логін на рівні Windows / AD і додав його назад, він отримає новий SID, який не відповідає SID, що зберігається в його системному каталозі, і він вийде з ладу.


1
Проблема в тому, що: новий сервер, всі акаунти нові, і я можу ввійти з ними. Але все ж десятки таких подій - без явного / жодного впливу. Я спробую якомога швидше прочитати буфер дзвінка.
— Jens W.

3
Я бачив таку саму поведінку на серверах, що не належать до AD, і вони не пов’язані з помилками входу або іншими помилками. Це просто вхід у буфер дзвінка помилок безпеки та затоплення system_health і немає інших причин, чому це відбувається.
— Джонатан Кехайяс
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.