SQL Server 2012年:Security_error_ring_buffer_recorded:ImpersonateSecurityContext


10

我管理的几个服务器在system_health XE会话中记录了很多事件。

error_code 5023应该是(系统错误代码):

ERROR_INVALID_STATE    5023 (0x139F)

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

我在事件安全日志或SQL Server日志中都没有失败的登录事件。


您是否已联系Microsoft支持或打开了票证?这看起来像是内部错误。
乔恩·塞格尔

您的实例和操作系统版本的内部版本号是多少?

它是带有SP1的普通SQL 2012:11.00.3000.00。我想尽快确定与我的设置联系,请与MS支持部门联系。希望在这里获得反馈...
Jens W.

Answers:


4

我将假设您正在寻找这些事件的定义和根本原因。

工作原理上讲:SQL Server 2005 SP2安全环缓冲区– 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

通知时间可能会阐明根本原因。

我认为您会发现条目的日期/时间将与错误日志中的登录失败条目对齐,类似于:

“用户'domain \ user'的登录失败。原因:基于令牌的服务器访问验证因基础结构错误而失败。请检查以前的错误。[客户端:]错误:18456严重性:14状态:11。“

对特定的“登录失败”错误消息进行故障排除 存档

状态11对应于“有效登录但服务器访问失败”,该状态指示登录有效,但缺少某些安全特权,该特权将授予其对实例的访问权限。

  1. 通过查看sys.server_principals的输出,检查该登录是否直接映射到SQL Server登录之一。
  2. 如果登录名直接映射到SQL实例中的可用登录名之一,则检查登录名的SID是否与Windows登录名的SID相匹配。

如果有人在Windows / AD级别上删除登录名并将其添加回去,它将获得一个新的SID,该SID与SQL存储在其系统目录中的SID不匹配,并且将失败。


1
问题是:新服务器,所有新帐户,我可以用它们登录。但是还有数十种此类事件-没有明显/任何影响。我将尝试尽快读出环形缓冲区。
Jens W.

3
我已经在非AD服务器上看到了相同的行为,并且它们与任何登录失败或其他错误都不相关。它只是登录安全性错误环形缓冲区并泛洪system_health,而没有其他原因导致这种情况发生。
Jonathan Kehayias
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.