Bagikan melalui


Mengelola rakitan integrasi CLR

Applies to:SQL Server

Kode terkelola dikompilasi dan kemudian disebarkan dalam unit yang disebut rakitan runtime bahasa umum (CLR). Rakitan dikemas sebagai file DLL atau dapat dieksekusi (.exe). Meskipun file yang dapat dieksekusi dapat berjalan sendiri, DLL harus dihosting di aplikasi yang ada. Rakitan DLL terkelola dapat dimuat ke dalam dan dihosting oleh SQL Server. SQL Server mengharuskan Anda mendaftarkan assembly dalam database menggunakan pernyataan CREATE ASSEMBLY, sebelum dapat dimuat dalam proses dan digunakan. Rakitan juga dapat diperbarui dari versi yang lebih baru menggunakan pernyataan ALTER ASSEMBLY, atau dihapus dari SQL Server menggunakan pernyataan DROP ASSEMBLY.

Informasi rakitan disimpan dalam tabel sys.assembly_files dalam database tempat assembly diinstal. Tabel sys.assembly_files berisi kolom berikut.

Column Description
assembly_id Pengidentifikasi yang ditentukan untuk rakitan. Angka ini ditetapkan ke semua objek yang berkaitan dengan rakitan yang sama.
name Nama objek.
file_id Angka yang mengidentifikasi setiap objek, dengan objek pertama yang terkait dengan assembly_id tertentu diberikan nilai 1. Jika beberapa objek dikaitkan dengan assembly_idyang sama , maka setiap nilai file_id berikutnya bertambah 1.
content Representasi heksadesimal dari rakitan atau file.

Di bagian ini

Article Description
Membuat assembly Membahas pembuatan SAFE, EXTERNAL_ACCESS, dan rakitan CLR UNSAFE di SQL Server
Mengubah rakitan Menjelaskan pembaruan rakitan CLR di SQL Server
Jatuhkan assembly Membahas penghapusan rakitan CLR dari SQL Server

Keamanan akses kode tidak lagi didukung

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. Di SQL Server 2017 (14.x) dan versi yang lebih baru, sp_configure opsi, keamanan ketat clr, 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 tidak disarankan.

Kami menyarankan agar Anda menandatangani semua rakitan dengan sertifikat atau kunci asimetris, dengan login terkait yang telah diberikan UNSAFE ASSEMBLY izin dalam master database. Administrator SQL Server juga dapat menambahkan rakitan ke daftar rakitan, yang harus dipercaya oleh Mesin Database. For more information, see sys.sp_add_trusted_assembly.