Aracılığıyla paylaş


SQL Server'da aralıklı veya düzenli kimlik doğrulama sorunları

Not

Sorun gidermeye başlamadan önce önkoşulları denetlemenizi ve denetim listesini gözden geçirmenizi öneririz. Daha fazla bilgi için bkz . Kendi Kendine Yardım Makaleleri.

Bu makalede, SQL Server bağlantısında aralıklı kimlik doğrulaması sorunlarının yaygın nedenleri açıklanır ve çözümler sağlanır.

Belirtiler

SQL Server bağlantısındaki aralıklı veya düzenli kimlik doğrulama sorunları, kullanıcılar veya uygulamalar SQL Server veritabanıyla kimlik doğrulamasında düzensiz zorluklarla karşılaştığında oluşur. Bu, veri erişiminde ve uygulama işlevselliğinde kesintilere neden olur.

En yaygın hata iletileri

  • SSPI bağlamı oluşturulamıyor

  • Kullanıcı için oturum açılamadı

    • '' kullanıcısı için oturum açılamadı
    • 'NT AUTHORITY\ANONYMOUS LOGON' kullanıcısı için oturum açma başarısız oldu
    • '<UserName>' kullanıcısı için oturum açılamadı
    • '<Domain>\<UserName>' kullanıcısı için oturum açılamadı
    • Oturum açılamadı. Oturum açma bilgisi güvenilmeyen bir etki alanından geliyor ve Windows kimlik doğrulamasıyla kullanılamaz.

Neden

En yaygın sorunlar SQL Server performansından veya etki alanı denetleyicisinin yavaş yanıt vermesine neden olur. NT LAN Manager (NTLM) kullanılıyorsa, Yerel Güvenlik Yetkilisi Alt Sistem Hizmeti'nde (LSASS) bir performans sorunu vardır ve aynı anda kaç yeni bağlantının işlenebileceğini sınırlar. Diğer istekler yedeklenir ve zaman aşımına uğradı. Virüsten koruma gibi bazı nedenlerin kanıtlanması zor olabilir, ancak yine de yaygındır ve diğer sorgulama yolları etkisizse kesin kanıt olmadan bile araştırılmalıdır.

Sorun giderme işlemi

Sorun aralıklı olduğundan, Kerberos Hizmet Asıl Adları (SPN'ler) gibi yapılandırmanın doğru olması muhtemeldir. Bu sorunu çözmek için aşağıdaki sorun giderme adımlarını deneyin:

Birden çok etki alanı veya veri merkezi arasındaki gecikme süresi farkı

Birden çok etki alanı veya veri merkezi söz konusuysa, diğer etki alanlarındaki veya veri merkezlerindeki kullanıcılar sorun yaşarken yerel etki alanındaki veya veri merkezindeki kullanıcıların bu sorunla karşılaşıp karşılaşmadığını denetleyin. Öyleyse, veri merkezleri veya etki alanı denetleyicileri arasında bir iletişim gecikmesi olduğunu gösterebilir. Sorunu araştırmak için aşağıdaki komutları kullanın:

  • Ağ gecikme süresini denetlemek için ping komutunu kullanın. Örneğin:

    1. komutunu çalıştırın: ping <DatabaseServer>.

    2. Saat sütununa bakın ve bu zamanı diğer etki alanı veya veri merkezindeki saatle karşılaştırın:

      Pinging <DatabaseServer> [10.10.10.3] with 32 bytes of data:
      Reply from 10.10.10.3: bytes=32 time=68ms TTL=116
      Reply from 10.10.10.3: bytes=32 time=67ms TTL=116
      Reply from 10.10.10.3: bytes=32 time=67ms TTL=116
      
  • Kimlik bilgisi doğrulama gecikmesi sorunlarını test etmek için çeşitli kullanıcılarla Runas kullanın. Örneğin:

    1. runas /user:<DomainName>\<UserAccountName> cmd.exe'i çalıştırın.
    2. Bir komut istemi gösterildikten sonra kullanıcının parolasını girin.

Bu komutlarla test ettikten sonra bile sorun devam ederse, sorun SQL Server'da değil, ağ altyapısında veya etki alanı denetleyicisi performansındadır.

SQL Server hata günlüğünde performans sorunu arayın

SQL Server hata günlüğü, G/Ç'nin 15 saniyeden uzun sürdüğünü gösteren girişler gibi SQL Server'da performans sorunları ortaya çıkabilir. SQL Performans ekibinin çalıştırıp analiz etmek için PSSDIAG'ı vardır. Bir ağ izlemesi SQL Server yanıtlarında gecikmeler ortaya çıkarsa bunu yapmanız gerekebilir.

Hata günlüğü, bazı Active Directory performans sorunlarını gösteren aşağıdaki hata günlüğü gibi etki alanıyla ilgili diğer hataları da içerebilir:

SSPI handshake failed with error code 0x80090311 while establishing a connection with integrated security; the connection has been closed.
SSPI handshake failed with error code 0x80090304 while establishing a connection with integrated security; the connection has been closed.

Aşağıdaki işletim sistemi hata kodları hatanın nedenini gösterir:

  • Hata -2146893039 (0x80090311): Kimlik doğrulaması için hiçbir yetkiliyle bağlantı kurulamadı.

  • Hata -2146893052 (0x80090304): Yerel Güvenlik Yetkilisi ile bağlantı kurulamıyor.

ağ hataları için istemci sistemindeki Olay günlüklerini gözden geçirin

Sistem olay günlüğünde Kerberos, Yerel Güvenlik Yetkilisi (LSA) ve Netlogon olayları gibi çeşitli olaylar bulunur. Bu olaylar bilgisayarın bir süre için etki alanı denetleyicisine bağlanamazsınız gösterir. Bulmalarını kolaylaştırmak için yalnızca Hata, Uyarı ve Kritik olayları filtreleyin. Olay zamanının kesinti zamanına yakın olması gerekir. Eşleşme varsa, bu bir Active Directory sorunu olabilir.

Bazı durumlarda bu sorun SQL Server'da oluşabilir. Bu makinedeki günlükleri de denetleyin.

Source: NETLOGON
Date: <DateTime>
Event ID: 5719
Task Category: None
Level: Error
Keywords: Classic
User: N/A
Computer: SQLPROD01
Description:
This computer was not able to set up a secure session with a domain controller in domain CONTOSO due to the following: The remote procedure call was cancelled. This may lead to authentication problems. Make sure that this computer is connected to the network. If the problem persists, please contact your domain administrator.

Güvenlik olay günlüğünde Olay Kimliği 4625'i filtreleyin. Bu olay, oturum açma hatası hakkında ayrıntılı bilgileri gösterir.

SQL bağlantı halkası arabelleği toplama ve gözden geçirme

Halka arabelleği, SQL Server'da bağlantı olaylarının geçmiş günlüğüdür ve bir kesintiden sonra alınabileceği anlamına gelir. Birçok olay, size zamanın nereye harcandığını belirten oturum açma zamanlayıcılarını içerir:

  • Ağda harcanan süre, olası bir ağ veya istemci gecikme süresini gösterir.
  • Güvenli Yuva Katmanı (SSL) veya Güvenlik Desteği Sağlayıcısı Arabirimi (SSPI) API'lerinde harcanan süre, Windows güvenlik alt sistemiyle ilgili olası sorunları gösterir.
  • Sıralanan zaman, SQL Server performans sorununu gösterir.

Daha fazla bilgi için bkz . Bağlantı Halkası Arabelleği Toplama.

Bağlantı havuzu

Bağlantı havuzu olmaması, aralıklı oturum açma hatalarına neden olabilir.

Not

Bağlantı havuzu eksikliği, oluşturulan bağlantılarla karşılaştırıldığında çıkışta NETSTAT çok sayıda TIME_WAIT durum kodu gösterir.

Bağlantı havuzu etkinleştirilmemişse, istemcinin giden bağlantı noktaları tükenebilir ve ayrıca sunucuyu aşırı yüklenmiş olabilir. Bu aşırı yükleme sunucunun gelen bağlantı isteklerini reddetmesine veya düşük performanslı bir etki alanı denetleyicisini su basmasına neden olabilir.

Yapılacak en iyi şey, uygulama geliştiricisinin uygulamalarında bağlantı havuzu kullanmasını sağlamaktır. .NET ve Internet Information Services (IIS) uygulamalarında bağlantı havuzu varsayılan olarak AÇILDI, ancak bazı nedenlerden dolayı kapatılmış olabilir.

Uygulamaların özel havuz kodu kullanması kesinlikle önerilmez. Karşılaştığımız neredeyse tüm özel havuz uygulamaları sorunlarla karşılaştı. Yerleşik bağlantı havuzu mekanizmasını kullanmak daha iyidir.

Kısa ömürlü bağlantı noktalarının tükenmesi, aralıklı bağlantı zaman aşımlarının nispeten yaygın bir nedenidir.

Sorun: SQL Server makinesinde düşük çekirdek belleği.

Çözüm: SQL Server Management Studio'daki Özellikler bölmesinde en yüksek sunucu belleğini (MB) ayarlayın. En iyi yöntem, maksimum sunucu belleğini (MB) makinedeki fiziksel bellekten yaklaşık 4 GB ile 8 GB daha az olarak ayarlamaktır. Makinede birden çok örnek, IIS veya başka bir uygulama sunucusu çalışıyorsa bu değer daha küçük olmalıdır. En fazla sunucu belleği (MB) ayarıyla ilgili öneriler için bkz. Sunucu belleği yapılandırma seçenekleri.

Not

Varsayılan değer olan 2147483647 MB, sunucunun işletim sisteminin (OS) belleğinin bitmasına neden olabileceği anlamına gelir.