KB4046918 - DÜZELTME: SQL Server 2016 ve 2017'de SQL CLR işlevi kimliğe bürünme çağrıları aracılığıyla Transact-SQL deyimlerini çağırdığında yürütme başarısız oluyor

Uygulandığı Öğe
SQL Server 2017 on Windows (all editions) SQL Server 2016 Enterprise Core - duplicate (do not use) SQL Server 2016 Standard - duplicate (do not use) SQL Server 2016 Developer - duplicate (do not use) SQL Server 2016 Enterprise - duplicate (do not use)

Belirtiler

Aşağıdaki senaryoyu ele alalım:

  • SQL Server 2016 ve 2017'de bir SQL CLR işleviniz var.
  • CLR işlevi, EXECUTE AS deyimini çağırarak olduğu gibi kimliğe bürünme çağrıları aracılığıyla Transact-SQL deyimlerini çağırır.

Bu senaryoda, yürütme başarısız olur ve aşağıdaki hata iletisini alırsınız:

Not

  • Msg 6522, Level 16, State 1, Procedure PrcedureName, Line 0 [Batch Start Line LineNumber]
  • Kullanıcı tanımlı yordamın veya toplu "ProcedureName"in yürütülmesi sırasında .NET Framework hatası oluştu:
  • System.Data.SqlClient.SqlException: Sunucu sorumlusu "LoginName", geçerli güvenlik bağlamı altında "DatabaseName" veritabanına erişemiyor.

Çözüm

Bu düzeltme, SQL ServerSQL Server 2017 için Toplu Güncelleştirme 1'e eklenmiştir.

SQL Server 2016 için hizmet paketi bilgileri

Bu sorun, SQL ServerSQL Server için aşağıdaki hizmet paketinde düzeltilmiştir:

Service Pack 2 for SQL ServerSQL Server 2016

SQL Server 2017 derlemeleri hakkında

SQL Server 2017'nin her yeni derlemesi bir önceki derlemede yer alan tüm düzeltmeleri ve güvenlik düzeltmelerini içerir. SQL Server 2017'nin en son derlemesini yüklemenizi öneririz.

SQL Server için hizmet paketleri hakkında:

Hizmet paketleri birikimlidir. Her yeni hizmet paketi, yeni düzeltmelerle birlikte önceki hizmet paketlerindeki düzeltmeleri de içerir. Önerimiz, en son hizmet paketini ve bu hizmet paketine yönelik en son toplu güncelleştirmeyi uygulamanızdır. En son hizmet paketini yüklemeden önce önceki bir hizmet paketini yüklemenize gerek yoktur. En son hizmet paketi ve en son toplu güncelleştirme hakkında daha fazla bilgi bulmak için aşağıdaki makalede yer alan Tablo 1'i kullanın.

SQL Server ve bileşenlerinin sürüm, sürüm ve güncelleştirme düzeyini belirleme

Durum

Microsoft bunun, "Şunlar için geçerlidir" bölümünde listelenen Microsoft ürünlerinde sorun olduğunu doğrulamıştır.

Başvurular

Microsoft'un yazılım güncelleştirmelerini tanımlamak için kullandığı terminoloji hakkında bilgi edinin.