Kullanıcılar TCP/IP protokolü kullanarak SQL Server uzaktan bağlanamayabilir

Bu makale, TCP/IP protokolü kullanarak SQL Server uzaktan bağlanamama sorununu çözmenize yardımcı olur.

Özgün ürün sürümü: SQL Server
Özgün KB numarası: 2018930

Belirtiler

Microsoft SQL Server kullanırken aşağıdaki belirtilerden birini veya daha fazlasını görebilirsiniz:

  • Yalnızca CONTROL SERVER iznine sahip kullanıcılar (örneğin, syadmin sabit sunucu rolünün üyeleri) TCP/IP üzerinden bağlanabilir. Bu izne sahip olmayan kullanıcılar, Windows veya SQL Server kimlik doğrulaması kullanarak TCP/IP protokolü aracılığıyla uzaktan bağlanamaz.

    Not

    Yükseltilmiş kullanıcı bağlantılarının yalnızca sys.dm_exec_sessions (Transact-SQL) Dinamik Yönetim Görünümü'nde (DMV) görüntülendiğini ancak sys.dm_exec_connections (Transact-SQL) görünümünde gösterilmediğini fark edeceksiniz.

  • Adlandırılmış Kanallar protokolü kullanan yerel ve uzak bağlantıların yanı sıra paylaşılan bellek protokolü kullanan yerel bağlantılar düzgün çalışmaya devam eder.

Ayrıca, aşağıdaki iletiler SQL Server Errorlog dosyasına kaydedilir:

  • SQL Server başlarken:

    Hata: 26023, Önem Derecesi: 16, Durum: 1.
    Sunucu TCP sağlayıcısı ['any'ipv6< 1963> ] tarihinde dinleyemedi. Tcp bağlantı noktası zaten kullanımda.
    Hata: 9692, Önem Derecesi: 16, Durum: 1.
    Hizmet Aracısı protokol aktarımı, başka bir işlem tarafından kullanımda olduğundan 1963 numaralı bağlantı noktasını dinleyemiyor.

  • Başarısız oturum açma işlemleri için:

    SQL Server 2008 ve sonraki sürümleri:

    Hata: 18456, Önem Derecesi: 14, Durum: 11.
    'MyDomain\TestAcc' kullanıcısı için oturum açılamadı. Neden: Belirteç tabanlı sunucu erişim doğrulaması bir altyapı hatasıyla başarısız oldu. Önceki hataları denetleyin.

Neden

Hata, SQL Server örneğinin kullanmak üzere yapılandırıldığı bağlantı noktasını kullanarak Hizmet Aracısı için bir TCP uç noktası yapılandırdığınızda oluşur. Aşağıdaki sorguyu yürüterek uç noktaların listesini alabilirsiniz:

SELECT * FROM sys.tcp_endpoints

Not

sys.tcp_endpoints(Transact-SQL) ile ilgili Books Online konusunda açıklandığı gibi, bu görünüm SQL Server örneğin kullanmak üzere yapılandırıldığı bağlantı noktaları ve protokoller hakkında bilgi içermez. Bu bilgileri bulmak için bkz. SQL Server Yapılandırma Yöneticisi.

Çözüm

  • Yöntem 1: DROP ENDPOINT (Transact-SQL) komutunu kullanarak soruna neden olan uç noktayı bırakın.

    Örneğin, adlı TestEP bir uç noktayı bırakmak için aşağıdaki komutu kullanabilirsiniz:

    DROP ENDPOINT TestEP
    
  • Yöntem 2: ALTER ENDPOINT (Transact-SQL) komutunu kullanarak uç noktayı farklı bir bağlantı noktası kullanacak şekilde değiştirin.

    Örneğin, adlı TestEP uç noktayı farklı bir bağlantı noktası kullanacak şekilde değiştirmek için aşağıdaki komutu kullanabilirsiniz:

    ALTER ENDPOINT TestEP as tcp (listener_port=1980)
    

Daha fazla bilgi

Veritabanı yansıtması için oluşturulanlar gibi diğer TCP uç noktalarıyla da benzer sorunlar oluşabilir ve SQL Server başlatma sırasındaki hata iletileri buna göre değişir.