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.