Aracılığıyla paylaş


Ortak dil çalışma zamanı (CLR) tümleştirmesi

Şunlar için geçerlidir:SQL ServerAzure SQL Yönetilen Örneği

SQL Server ve Azure SQL Yönetilen Örneği yerel ortak dil çalışma zamanı (CLR) tümleştirmesini SQL Server sunucu tarafı modülleri (yordamlar, işlevler ve tetikleyiciler) olarak kullanarak .NET dilleri ile bazı işlevleri uygulamanıza olanak tanır. CLR, yönetilen kodu diller arası tümleştirme, kod erişimi güvenliği, nesne yaşam süresi yönetimi ve hata ayıklama ve profil oluşturma desteği gibi hizmetlerle sağlar.

SQL Server kullanıcıları ve uygulama geliştiricileri için CLR tümleştirmesi, C# Visual Basic .NET de dahil olmak üzere herhangi bir .NET Framework dilini kullanarak saklı yordamlar, tetikleyiciler, kullanıcı tanımlı türler, kullanıcı tanımlı işlevler (skaler ve tablo değerli) ve kullanıcı tanımlı toplama işlevleri yazabileceğiniz anlamına gelir. SQL Server önceden yüklenmiş .NET Framework 4 sürümünü içerir.

Bu 6 dakikalık videoda, Azure SQL Yönetilen Örneği'nde CLR'yi nasıl kullanacağınız gösterilmektedir:

 

Kod erişim güvenliği artık desteklenmiyor

CLR, artık güvenlik sınırı olarak desteklenmeyen .NET Framework'te Kod Erişim Güvenliği'ni (CAS) kullanır. PERMISSION_SET = SAFE ile oluşturulan bir CLR derlemesi dış sistem kaynaklarına erişebilir, yönetilmeyen kodu çağırabilir ve sysadmin ayrıcalıkları alabilir. SQL Server 2017 (14.x) ve sonraki sürümlerinde clr katı güvenlik seçeneği CLR derlemelerinin güvenliğini artırır. clr strict security varsayılan olarak etkinleştirilir ve SAFE ve EXTERNAL_ACCESS derlemeleri UNSAFEolarak işaretlenmiş gibi değerlendirir. geriye dönük uyumluluk için clr strict security seçeneği devre dışı bırakılabilir, ancak önerilmez.

master veritabanında UNSAFE ASSEMBLY izin verilmiş ilgili oturum açma bilgileriyle tüm derlemeleri bir sertifika veya asimetrik anahtarla imzalamanızı öneririz. SQL Server yöneticileri, Veritabanı Altyapısı'nın güvenmesi gereken derleme listesine derlemeler de ekleyebilir. Daha fazla bilgi için bkz. sys.sp_add_trusted_assembly.

CLR modülleri ne zaman kullanılır?

CLR Tümleştirmesi, .NET Framework'te normal ifadeler, dış kaynaklara erişim kodu (sunucular, web hizmetleri, veritabanları), özel şifreleme vb. gibi karmaşık özellikleri uygulamanıza olanak tanır. Sunucu tarafı CLR tümleştirmesinin avantajlarından bazıları şunlardır:

  • Daha iyi bir programlama modeli. .NET Framework dilleri birçok açıdan Transact-SQL'den daha zengindir ve daha önce SQL Server geliştiricileri tarafından kullanılamayan yapılar ve özellikler sunar. Geliştiriciler, programlama sorunlarını hızlı ve verimli bir şekilde çözmek için kullanılabilecek kapsamlı bir sınıf kümesi sağlayan .NET Framework Kitaplığı'nın gücünü de kullanabilir.

  • Geliştirilmiş güvenlik ve güvenlik. Yönetilen kod, Veritabanı Altyapısı tarafından barındırılan ortak dil çalışma zamanı ortamında çalışır. SQL Server, SQL Server'ın önceki sürümlerinde kullanılabilen genişletilmiş saklı yordamlara daha güvenli ve daha güvenli bir alternatif sağlamak için bunu kullanır.

  • Veri türlerini ve toplama işlevlerini tanımlama yeteneği. Kullanıcı tanımlı türler ve kullanıcı tanımlı toplamalar, SQL Server'ın depolama ve sorgulama özelliklerini genişleten iki yeni yönetilen veritabanı nesnesidir.

  • Standartlaştırılmış bir ortam aracılığıyla kolaylaştırılmış geliştirme. Veritabanı geliştirme, Visual Studio .NET geliştirme ortamının gelecek sürümleriyle tümleşiktir. Geliştiriciler, orta katman veya istemci katmanı .NET Framework bileşenleri ve hizmetleri yazmak için kullandıkları veritabanı nesnelerini ve betiklerini geliştirmek ve hatalarını ayıklamak için aynı araçları kullanır.

  • İyileştirilmiş performans ve ölçeklenebilirlik potansiyeli. Birçok durumda, .NET Framework dil derleme ve yürütme modelleri Transact-SQL'e göre geliştirilmiş performans sunar.

SQL Server Dil Uzantıları Veritabanı Altyapısı'na yakın çalışma zamanları için alternatif bir yürütme ortamı sağlar. SQL CLR ve SQL dil uzantıları arasındaki farkların tartışılması için bkz. SQL Server Dil Uzantılarını SQL CLR ile Karşılaştırma.

Aşağıdaki tabloda bu bölümdeki makaleler listelanmıştır.

Makale Açıklama
CLR tümleştirmeye genel bakış CLR tümleştirmesi kullanılarak oluşturulabilecek nesne türlerini açıklar. Ayrıca CLR tümleştirmesini kullanarak veritabanı nesneleri oluşturma gereksinimlerini gözden geçirme.
CLR tümleştirmesindeki yenilikler Bu sürümdeki yeni özellikleri açıklar.
CLR tümleştirme mimarisi - CLR barındırılan ortam CLR tümleştirmesinin tasarım hedeflerini açıklar.
CLR tümleştirmesini etkinleştirme CLR tümleştirmesini etkinleştirmeyi açıklar.
  • .NET Framework yükleme kılavuzu
  • CLR tümleştirme mimarisi Performansı