SQL Server 2012: Security_error_ring_buffer_recorded: ImpersonateSecurityContext


10

пара серверов, которыми я управляю, записывают много событий в сеансе system_health XE.

  • имя : security_error_ring_buffer_recorded
  • api_name : ImpersonateSecurityContext
  • имя_пользователя_причины : NLShimImpersonate
  • код ошибки : 5023

Код ошибки 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 с пакетом обновления 1: 11.00.3000.00. Я хочу связаться со службой поддержки MS, как только я уверен, что в моей настройке нет ошибок. Надеемся на обратную связь здесь ...
Йенс В.

Ответы:


4

Я предполагаю, что вы ищете определение и коренную причину этих событий.

С Как это работает: SQL Server 2005 SP2 безопасности Кольцевой буфер - RING_BUFFER_SECURITY_ERROR ( архив ) :

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

Вы заявляете, что в журнале событий нет ни неудачных записей входа в систему, ни журнала ошибок. Вместо этого вы можете запросить этот кольцевой буфер напрямую:

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 SQL, сохраненным в его системном каталоге, и произойдет сбой.


1
Проблема в том, что новый сервер, все учетные записи новые, и я могу войти с ними. Но все же десятки таких событий - без четких / каких-либо последствий. Я постараюсь зачитать кольцевой буфер как можно скорее.
Дженс В.

3
Я видел такое же поведение на не-AD серверах, и они не связаны с ошибками входа в систему или другими ошибками. Он просто регистрируется в кольцевом буфере ошибок безопасности и вызывает system_health, и никаких других причин, по которым это происходит, отсутствует.
Джонатан Кехайяс
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.