SQL Server 2012: Security_error_ring_buffer_recorded: ImpersonateSecurityContext


10

yönettiğim birkaç sunucu system_health XE oturumunda birçok olayı kaydediyor.

Error_code 5023 ( Sistem Hata Kodları ) olmalıdır:

ERROR_INVALID_STATE    5023 (0x139F)

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

Olay güvenlik günlüğünde veya SQL Server günlüğünde başarısız oturum açma olayım yok.


Microsoft desteğine başvurdunuz veya bir bilet açtınız mı? Bu bir iç hataya benziyor.
Jon Seigel

Örneğinizin ve OS sürümünün derleme numarası nedir?

SP1 ile sade bir SQL 2012: 11.00.3000.00. Kurulumumda bir hata olmadığından emin olur olmaz MS Destek ile iletişime geçmek istiyorum. ... burada geribildirim için umut
Jens W.

Yanıtlar:


4

Bu olayların tanımını ve temel nedenini aradığınızı varsayacağım.

Gönderen Nasıl Çalışır: SQL Server 2005 SP2 Güvenlik Halkası Tampon - RING_BUFFER_SECURITY_ERROR ( arşiv ) :

SQL Server 2005 SP2 sys.dm_os_ring_buffers, çeşitli güvenlik hataları için yeni halka arabelleği girdileri ( ) ekledi . Ring buffer girişlerinin eklenmesinin nedeni, DBA'ya bir istemcinin neden başarısız bir oturum açma veya benzeri bir hata aldığına ilişkin daha fazla bilgi sağlamaktı.

Olay günlüğünde veya hata günlüğünde başarısız giriş girişi olmadığını belirtirsiniz. Bunun yerine bu halka arabelleğini doğrudan sorgulayabilirsiniz:

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

Bildirim süresi kök nedene biraz ışık tutabilir.

Ben girişlerin tarih / saat hata günlüğüne benzer hata günlüğü giriş girişleri ile aynı hizaya olacağını düşünüyorum:

"'Domain \ user' kullanıcısı için oturum açılamadı. Sebep: Belirteç tabanlı sunucu erişim doğrulaması bir altyapı hatasıyla başarısız oldu. Önceki hataları kontrol edin. [İSTEMCİ:] Hata: 18456 Şiddet: 14 Durum: 11."

Gönderen Giderme özgü Giriş Başarısız hata iletileri ( arşiv ) :

Durum 11 , oturum açmanın geçerli olduğunu ancak örneğe erişmesine izin verecek bazı güvenlik ayrıcalıklarının eksik olduğunu belirten "Geçerli oturum açma ancak sunucu erişim hatası" na karşılık gelir .

  1. Sys.server_principals çıktısına bakarak bu girişin doğrudan SQL Server oturum açmalarından birine eşlenip eşlenmediğini kontrol edin.
  2. Oturum açma, SQL örneğindeki kullanılabilir oturum açma işlemlerinden biriyle doğrudan eşlenirse, oturum açma işleminin SID değerinin Windows Oturum Açma İşleminin SID değeriyle eşleşip eşleşmediğini denetleyin.

Birisi oturum açma işlemini Windows / AD düzeyinde bırakıp geri eklerse, sistem kataloğunda depolanan SID SQL ile eşleşmeyen yeni bir SID alır ve başarısız olur.


1
Sorun: yeni sunucu, tüm yeni hesaplar ve ben onlarla giriş yapabilirsiniz. Ama yine de onlarca olay - net / herhangi bir etki olmadan. Halka tamponunu en kısa zamanda okumaya çalışacağım.
Jens

3
Aynı davranışı AD olmayan sunucularda da gördüm ve herhangi bir giriş hatası veya diğer hatalarla ilişkili değiller. Sadece güvenlik hatası halka arabelleğine giriş yapıyor ve system_health'e taşınıyor ve bunun neden olmasının başka bir nedeni yok.
Jonathan Kehayias
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.