Konfigurasi server: keamanan ketat clr
Berlaku untuk: SQL Server
Mengontrol interpretasi SAFE
izin , , EXTERNAL_ACCESS
atau UNSAFE
di SQL Server. Untuk informasi selengkapnya tentang izin ini, lihat Merancang rakitan.
Nilai | Deskripsi |
---|---|
0 |
Dinonaktifkan. Disediakan untuk kompatibilitas mundur. Mengatur nilai ini ke 0 tidak disarankan. |
1 |
Diaktifkan. Menyebabkan Mesin Database mengabaikan PERMISSION_SET informasi pada rakitan, dan selalu menafsirkannya sebagai UNSAFE . Di SQL Server 2017 (14.x) dan versi yang lebih baru, 1 adalah nilai default. |
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, clr strict security
perlakukan SAFE
dan EXTERNAL_ACCESS
rakitan seolah-olah ditandai UNSAFE
.
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. Untuk informasi selengkapnya, lihat sys.sp_add_trusted_assembly.
Keterangan
Saat diaktifkan, PERMISSION_SET
opsi dalam CREATE ASSEMBLY
pernyataan dan ALTER ASSEMBLY
diabaikan pada run-time, tetapi PERMISSION_SET
opsi dipertahankan dalam metadata. Mengabaikan opsi ini meminimalkan melanggar pernyataan kode yang ada.
CLR strict security
advanced option
adalah .
Setelah Anda mengaktifkan keamanan ketat, rakitan apa pun yang tidak ditandatangani gagal dimuat. Anda harus mengubah atau menghilangkan dan membuat ulang setiap rakitan sehingga ditandatangani dengan sertifikat atau kunci asimetris yang memiliki login yang sesuai dengan UNSAFE ASSEMBLY
izin di server.
Izin
Ubah opsi ini
CONTROL SERVER
Memerlukan izin, atau keanggotaan dalam peran server tetap sysadmin.
Membuat rakitan CLR
Izin berikut diperlukan untuk membuat rakitan CLR saat CLR strict security
diaktifkan:
Pengguna harus memiliki
CREATE ASSEMBLY
izinSalah satu kondisi berikut juga harus benar:
Rakitan ditandatangani dengan sertifikat atau kunci asimetris yang memiliki login yang sesuai dengan
UNSAFE ASSEMBLY
izin di server. Penandatanganan rakitan disarankan.Database memiliki properti yang
TRUSTWORTHY
diatur keON
, dan database dimiliki oleh login yang memilikiUNSAFE ASSEMBLY
izin di server. Opsi ini tidak disarankan.
Contoh
Contoh berikut pertama-tama menampilkan pengaturan clr strict security
opsi saat ini, lalu mengatur nilai opsi ke 1
(diaktifkan).
EXEC sp_configure 'clr strict security';
GO
EXEC sp_configure 'clr strict security' , '1';
RECONFIGURE;
GO