Keamanan ketat CLR

Berlaku untuk:SQL Server

Mengontrol interpretasi SAFEizin , EXTERNAL ACCESS, UNSAFE di SQL Server.

Nilai Deskripsi
0 Dinonaktifkan - Disediakan untuk kompatibilitas mundur. Disabled nilai tidak disarankan.
1 Diaktifkan - Menyebabkan Mesin Database mengabaikan PERMISSION_SET informasi pada rakitan, dan selalu menafsirkannya sebagai UNSAFE. Enabledadalah nilai default, dimulai dengan SQL Server 2017 (14.x).

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. 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.

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, meminimalkan melanggar pernyataan kode yang ada.

CLR strict securityadvanced optionadalah .

Penting

Setelah mengaktifkan keamanan ketat, setiap rakitan yang tidak ditandatangani akan 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

Untuk mengubah opsi ini

CONTROL SERVER Memerlukan izin, atau keanggotaan dalam sysadmin peran server tetap.

Untuk membuat rakitan CLR

Izin berikut diperlukan untuk membuat rakitan CLR saat CLR strict security diaktifkan:

  • Pengguna harus memiliki CREATE ASSEMBLY izin
  • Dan 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. Menandatangani assembly 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.

Lihat juga

Opsi Konfigurasi Server (SQL Server)
sp_configure (Transact-SQL)
Opsi Konfigurasi Server yang diaktifkan clr