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
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk