Integrasi Runtime Bahasa Umum

Berlaku untuk: SQL Server Azure SQL Managed Instance

Microsoft SQL Server dan Azure SQL Managed Instance memungkinkan Anda menerapkan beberapa fungsi dengan bahasa .NET menggunakan integrasi runtime bahasa umum (CLR) asli sebagai SQL Server modul sisi server (prosedur, fungsi, dan pemicu). CLR menyediakan kode terkelola dengan layanan seperti integrasi lintas bahasa, keamanan akses kode, manajemen seumur hidup objek, serta dukungan penelusuran kesalahan dan pembuatan profil. Untuk SQL Server pengguna dan pengembang aplikasi, integrasi CLR berarti Anda sekarang dapat menulis prosedur tersimpan, pemicu, jenis yang ditentukan pengguna, fungsi yang ditentukan pengguna (bernilai skalar dan tabel), dan fungsi agregat yang ditentukan pengguna menggunakan bahasa .NET Framework apa pun, termasuk Microsoft Visual Basic .NET dan Microsoft Visual C#. SQL Server menyertakan .NET Framework versi 4 yang telah diinstal sebelumnya.

Peringatan

Runtime bahasa umum menggunakan Keamanan Akses Kode (CAS) dalam .NET Framework, yang tidak lagi didukung sebagai batas keamanan. Rakitan CLR yang dibuat dengan PERMISSION_SET = SAFE mungkin dapat mengakses sumber daya sistem eksternal, memanggil kode yang tidak dikelola, dan memperoleh hak istimewa sysadmin. Dimulai dengan SQL Server 2017 (14.x), opsi yang sp_configure disebut clr strict security diperkenalkan untuk meningkatkan keamanan rakitan CLR. clr strict security diaktifkan secara default, dan memperlakukan SAFE dan EXTERNAL_ACCESS rakitan seolah-olah ditandai UNSAFE. Opsi clr strict security ini dapat dinonaktifkan untuk kompatibilitas mundur, tetapi ini tidak disarankan. Microsoft merekomendasikan agar semua rakitan ditandatangani oleh sertifikat atau kunci asimetris dengan login terkait yang telah diberikan UNSAFE ASSEMBLY izin dalam database master. Untuk informasi selengkapnya, lihat Keamanan ketat CLR. SQL Server administrator juga dapat menambahkan rakitan ke daftar rakitan, yang harus dipercaya oleh Mesin Database. Untuk informasi selengkapnya, lihat sys.sp_add_trusted_assembly.

Video 6 menit ini menunjukkan kepada Anda cara menggunakan CLR di Azure SQL Managed Instance:

Kapan menggunakan modul CLR

Integrasi CLR memungkinkan Anda menerapkan fitur kompleks yang tersedia di .NET Framework seperti ekspresi reguler, kode untuk mengakses sumber daya eksternal (server, layanan web, database), enkripsi kustom, dll. Beberapa manfaat dari integrasi CLR sisi server adalah:

  • Model pemrograman yang lebih baik. Bahasa .NET Framework dalam banyak hal lebih kaya daripada Transact-SQL, menawarkan konstruksi dan kemampuan yang sebelumnya tidak tersedia untuk pengembang SQL Server. Pengembang juga dapat memanfaatkan kekuatan pustaka .NET Framework, yang menyediakan serangkaian kelas luas yang dapat digunakan untuk menyelesaikan masalah pemrograman dengan cepat dan efisien.

  • Peningkatan keselamatan dan keamanan. Kode terkelola berjalan di lingkungan run-time bahasa umum, yang dihosting oleh Mesin Database. SQL Server memanfaatkan ini untuk memberikan alternatif yang lebih aman dan lebih aman untuk prosedur tersimpan yang diperluas yang tersedia di versi SQL Server sebelumnya.

  • Kemampuan untuk menentukan jenis data dan fungsi agregat. Jenis yang ditentukan pengguna dan agregat yang ditentukan pengguna adalah dua objek database terkelola baru yang memperluas kemampuan penyimpanan dan kueri SQL Server.

  • Pengembangan yang disederhanakan melalui lingkungan standar. Pengembangan database diintegrasikan ke dalam rilis lingkungan pengembangan Microsoft Visual Studio .NET di masa mendatang. Pengembang menggunakan alat yang sama untuk mengembangkan dan men-debug objek dan skrip database seperti yang digunakan untuk menulis komponen dan layanan .NET Framework tingkat menengah atau klien.

  • Potensi peningkatan performa dan skalabilitas. Dalam banyak situasi, kompilasi bahasa .NET Framework dan model eksekusi memberikan peningkatan performa melalui Transact-SQL.

SQL Server ekstensi bahasa menyediakan lingkungan eksekusi alternatif untuk runtime yang dekat dengan mesin database. Untuk diskusi tentang perbedaan antara ekstensi bahasa SQL CLR dan SQL, lihat Membandingkan Ekstensi Bahasa SQL Server dengan SQL CLR.

Tabel berikut ini mencantumkan topik di bagian ini.

Gambaran Umum Integrasi CLR
Menjelaskan jenis objek yang dapat dibangun menggunakan integrasi CLR. Juga meninjau persyaratan untuk membangun objek database menggunakan integrasi CLR.

Yang Baru dalam Integrasi CLR
Menjelaskan fitur baru dalam rilis ini.

Arsitektur Integrasi CLR
Menjelaskan tujuan desain integrasi CLR.

Mengaktifkan Integrasi CLR
Menjelaskan cara mengaktifkan integrasi CLR.

Lihat juga

Menginstal .NET Framework (hanya SQL Server)
Performa Integrasi CLR