Bagikan melalui


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 modul sisi server SQL Server (prosedur, fungsi, dan pemicu). CLR menyediakan kode terkelola dengan layanan seperti integrasi lintas bahasa, keamanan akses kode, manajemen masa pakai objek, serta dukungan penelusuran kesalahan dan pembuatan profil. Untuk pengguna SQL Server dan pengembang aplikasi, integrasi CLR berarti Anda sekarang dapat menulis prosedur tersimpan, pemicu, jenis yang ditentukan pengguna, fungsi yang ditentukan pengguna (skalar dan tabel bernilai), 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 dapat dinonaktifkan untuk kompatibilitas mundur, tetapi ini tidak disarankan. Microsoft menyarankan 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. Administrator SQL Server 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 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 .NET Framework Library, yang menyediakan serangkaian kelas yang 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 .NET Microsoft Visual Studio di masa mendatang. Pengembang menggunakan alat yang sama untuk mengembangkan dan men-debug objek database dan skrip seperti yang mereka gunakan untuk menulis komponen dan layanan .NET Framework tingkat menengah atau tingkat klien.

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

Ekstensi bahasa SQL Server 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 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.

Apa 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