Anda hanya dapat menambahkan referensi ke majelis-majelis yang telah terdaftar di Sql Server. Jika mereka tidak terdaftar, mereka tidak akan muncul di dialog Tambah Referensi.
Ada beberapa langkah yang perlu Anda lakukan untuk mendaftarkan DLL, pertama Anda harus mengkonfigurasi ulang basis data Anda:
ALTER DATABASE [MyDatabase] SET TRUSTWORTHY ON;
sp_configure 'clr enabled', 1;
RECONFIGURE;
Setelah ini selesai, Sql Server diaktifkan CLR. Selanjutnya, Anda harus mendaftarkan majelis Anda:
CREATE ASSEMBLY [MyAssembly] AUTHORIZATION [MyUser]
FROM 'C:\CLR\MyAssembly.dll'
WITH PERMISSION_SET = SAFE
Jika skrip terakhir ini berjalan dengan benar, majelis sekarang terdaftar, dan akan muncul di dialog Tambah Referensi.
Yang perlu Anda pertimbangkan adalah keamanan aplikasi konfigurasi Sql Server CLR Anda:
- Lebih suka mendaftarkan majelis sebagai
SAFE
, hanya dalam keadaan luar biasa Anda dapat menggunakan EXTERNAL_ACCESS
atau UNSAFE
.
- Jangan berharap dapat melakukan semua yang Anda bisa pada CLR dengan kepercayaan penuh (yaitu, bukan CLR yang di-host oleh Sql Server) - SQLCLR adalah runtime yang dikotak pasir.
- Jangan mencoba dan memuat majelis secara dinamis, seperti
Assembly.Load()
yang sengaja dibatasi.
- Anda mungkin perlu memastikan perpustakaan pihak ke-3 ditandatangani dengan kunci publik jika Anda berencana menggunakan
UNSAFE
.
- Eksekusi kode berjalan dalam konteks identitas layanan yang menjalankan Sql Server (saya pikir!)
- Akses basis data yang dibuat dari rakitan yang dihosting (mis. Via
context connection = true;
) berjalan dalam konteks pengguna yang terhubung, jadi Anda perlu memastikan bahwa Anda mengetahui akses apa yang dimiliki pustaka ke data Anda.