Bagikan melalui


Konfigurasi server: keamanan ketat clr

Berlaku untuk: SQL Server

Mengontrol interpretasi SAFEizin , , EXTERNAL_ACCESSatau 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 securityadvanced optionadalah .

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 izin

  • Salah 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 ke ON, dan database dimiliki oleh login yang memiliki UNSAFE 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