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 หรือเปิดตั๋วหรือไม่ ดูเหมือนว่าข้อผิดพลาดภายใน
Jon Seigel

หมายเลขบิลด์ของอินสแตนซ์และเวอร์ชั่นของระบบปฏิบัติการของคุณคืออะไร?

มันเป็น SQL 2012 แบบธรรมดาที่มี SP1: 11.00.3000.00 ฉันต้องการติดต่อฝ่ายสนับสนุนของ MS ทันทีที่ฉันแน่ใจว่าไม่ใช่ข้อผิดพลาดในการตั้งค่าของฉัน หวังว่าจะได้ข้อเสนอแนะที่นี่ ...
Jens W.

คำตอบ:


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

เวลาการแจ้งเตือนอาจทำให้เกิดแสงที่รากสาเหตุ

ฉันคิดว่าคุณจะพบว่าวันที่ / เวลาของรายการจะตรงกับรายการล้มเหลวในการเข้าสู่ระบบใน errorlog คล้ายกับ:

"การเข้าสู่ระบบล้มเหลวสำหรับผู้ใช้ 'โดเมน \ ผู้ใช้' เหตุผล: การตรวจสอบการเข้าถึงเซิร์ฟเวอร์ที่ใช้โทเค็นล้มเหลวโดยมีข้อผิดพลาดด้านโครงสร้างพื้นฐานตรวจสอบข้อผิดพลาดก่อนหน้า [ลูกค้า:] ข้อผิดพลาด: 18456 ความรุนแรง: 14 รัฐ: 11"

จากการแก้ไขปัญหาเฉพาะข้อความเข้าสู่ระบบล้มเหลว ( เก็บถาวร ) :

สถานะ 11 สอดคล้องกับ“ การเข้าสู่ระบบที่ถูกต้อง แต่การเข้าถึงเซิร์ฟเวอร์ล้มเหลว”ซึ่งระบุว่าการเข้าสู่ระบบนั้นถูกต้อง แต่ไม่มีสิทธิ์ด้านความปลอดภัยบางอย่างที่จะให้สิทธิ์การเข้าถึงอินสแตนซ์นั้น

  1. ตรวจสอบว่าการล็อกอินนั้นถูกแมปโดยตรงกับการเข้าสู่ระบบ SQL Server อย่างใดอย่างหนึ่งโดยดูในผลลัพธ์ของ sys.server_principals
  2. หากการล็อกอินถูกแมปโดยตรงกับการเข้าสู่ระบบที่มีอยู่อย่างใดอย่างหนึ่งในอินสแตนซ์ SQL ให้ตรวจสอบว่า SID ของการเข้าสู่ระบบตรงกับ SID ของการเข้าสู่ระบบ Windows หรือไม่

หากมีคนลงชื่อเข้าใช้ในระดับ Windows / AD และเพิ่มกลับเข้ามามันจะได้รับ SID ใหม่ซึ่งจะไม่ตรงกับ SID SQL ที่เก็บไว้ในแค็ตตาล็อกระบบและจะล้มเหลว


1
ปัญหาคือ: เซิร์ฟเวอร์ใหม่บัญชีทั้งหมดใหม่และฉันสามารถเข้าสู่ระบบด้วยพวกเขา แต่ยังมีอีกหลายสิบเหตุการณ์ - โดยไม่มีความชัดเจน / ผลกระทบใด ๆ ฉันจะพยายามอ่านบัฟเฟอร์วงแหวนโดยเร็วที่สุด
Jens W.

3
ฉันเห็นพฤติกรรมแบบเดียวกันนี้ในเซิร์ฟเวอร์ที่ไม่ใช่โฆษณาและพวกเขาไม่ได้เชื่อมโยงกับความล้มเหลวในการเข้าสู่ระบบหรือข้อผิดพลาดอื่น ๆ มันเป็นเพียงการเข้าสู่ระบบบัฟเฟอร์ข้อผิดพลาดการรักษาความปลอดภัยและน้ำท่วม system_health และไม่มีเหตุผลอื่นสำหรับสาเหตุที่เกิดขึ้น
Jonathan Kehayias
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.