SQL Server 2012: Security_error_ring_buffer_recorded: Mạo danhSecurityContext


10

một vài máy chủ mà tôi quản lý đang ghi lại rất nhiều sự kiện trong phiên system_health XE.

  • tên : security_error_ring_buffer_recorded
  • api_name : Mạo danhSecurityContext
  • calling_api_name : NLShimImpersonate
  • lỗi_code : 5023

Error_code 5023 phải là ( Mã lỗi hệ thống ):

ERROR_INVALID_STATE    5023 (0x139F)

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

Tôi không có sự kiện đăng nhập thất bại trong nhật ký bảo mật sự kiện, cũng như trong nhật ký SQL Server.


Bạn đã liên hệ với bộ phận hỗ trợ của Microsoft hoặc mở một vé? Điều này trông giống như một lỗi nội bộ.
Jon Seigel

Số bản dựng của phiên bản hệ điều hành và phiên bản của bạn là gì?

Nó là một SQL 2012 đơn giản với SP1: 11.00.3000.00. Tôi muốn liên hệ với bộ phận Hỗ trợ của MS ngay khi tôi chắc chắn đó không phải là lỗi trong thiết lập của mình. Hy vọng cho phản hồi ở đây ...
Jens W.

Câu trả lời:


4

Tôi sẽ giả định rằng bạn đang tìm kiếm định nghĩa và nguyên nhân gốc rễ của những sự kiện này.

Từ cách thức hoạt động: Bộ đệm vòng bảo mật SQL Server 2005 SP2 - RING_BUFFER_SECURITY_ERROR ( lưu trữ ) :

SQL Server 2005 SP2 đã thêm các mục bộ đệm vòng mới ( sys.dm_os_ring_buffers) cho các lỗi bảo mật khác nhau. Lý do các mục bộ đệm vòng được thêm vào là để cung cấp cho DBA nhiều chi tiết hơn về lý do tại sao khách hàng nhận được thông tin đăng nhập thất bại hoặc lỗi khác.

Bạn nói rằng bạn không có mục đăng nhập thất bại trong nhật ký sự kiện cũng như trong nhật ký lỗi. Thay vào đó, bạn có thể truy vấn bộ đệm vòng này trực tiếp:

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

Thời gian thông báo có thể làm sáng tỏ nguyên nhân gốc rễ.

Tôi nghĩ bạn sẽ thấy rằng ngày / giờ của các mục sẽ xếp hàng với các mục thất bại đăng nhập trong errorlog tương tự như:

"Đăng nhập thất bại cho người dùng 'domain \ user'. Lý do: Xác thực truy cập máy chủ dựa trên mã thông báo không thành công với lỗi cơ sở hạ tầng. Kiểm tra các lỗi trước đó. [CLIENT:] Lỗi: 18456 Mức độ nghiêm trọng: 14 Trạng thái: 11."

Từ khắc phục sự cố thông báo lỗi đăng nhập cụ thể ( lưu trữ ) :

Trạng thái 11 tương ứng với Đăng nhập hợp lệ nhưng lỗi truy cập máy chủ , điều đó cho thấy rằng đăng nhập hợp lệ nhưng thiếu một số đặc quyền bảo mật sẽ cấp cho nó quyền truy cập vào thể hiện.

  1. Kiểm tra xem thông tin đăng nhập đó có được ánh xạ trực tiếp đến một trong các thông tin đăng nhập Máy chủ SQL hay không bằng cách xem kết quả đầu ra của sys.server_principals.
  2. Nếu thông tin đăng nhập được ánh xạ trực tiếp vào một trong các thông tin đăng nhập có sẵn trong phiên bản SQL, thì hãy kiểm tra xem SID của thông tin đăng nhập có khớp với SID của Đăng nhập Windows không.

Nếu ai đó bỏ đăng nhập ở cấp Windows / AD và thêm lại, nó sẽ nhận được một SID mới không khớp với SID SQL đã được lưu trong danh mục hệ thống của nó và nó sẽ thất bại.


1
Vấn đề là: máy chủ mới, tất cả tài khoản mới và tôi có thể đăng nhập với chúng. Nhưng hàng tá các sự kiện như vậy - mà không rõ ràng / bất kỳ tác động. Tôi sẽ cố gắng đọc bộ đệm vòng càng sớm càng tốt.
Jens W.

3
Tôi đã thấy hành vi tương tự trên các máy chủ không phải AD và chúng không liên quan đến bất kỳ lỗi đăng nhập hoặc lỗi nào khác. Nó chỉ đăng nhập vào bộ đệm vòng lỗi bảo mật và lũ lụt system_health và không có lý do nào khác cho lý do tại sao nó xảy ra.
Jonathan Kehayias
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.