Bagikan melalui


Atribut perlindungan host dan pemrograman integrasi CLR

Berlaku untuk:SQL Server

Runtime bahasa umum (CLR) menyediakan mekanisme untuk membuat anotasi antarmuka pemrograman aplikasi terkelola (API) yang merupakan bagian dari .NET Framework. Atribut ini mungkin menarik bagi host CLR, seperti SQL Server. Contoh atribut perlindungan host (HPAs) tersebut meliputi:

  • SharedState, yang menunjukkan apakah API mengekspos kemampuan untuk membuat atau mengelola status bersama (misalnya, bidang kelas statis).

  • Synchronization, yang menunjukkan apakah API mengekspos kemampuan untuk melakukan sinkronisasi antar utas.

  • ExternalProcessMgmt, yang menunjukkan apakah API mengekspos cara untuk mengontrol proses host.

Mengingat atribut ini, SQL Server menentukan daftar HPA yang tidak diizinkan di lingkungan yang dihosting melalui keamanan akses kode (CAS). Persyaratan CAS ditentukan oleh salah satu dari tiga set izin SQL Server: SAFE, EXTERNAL_ACCESS, atau UNSAFE. Salah satu dari ketiga tingkat keamanan ini ditentukan ketika rakitan terdaftar di server, menggunakan pernyataan CREATE ASSEMBLY. Kode yang dijalankan dalam set izin SAFE atau EXTERNAL_ACCESS harus menghindari jenis atau anggota tertentu yang menerapkan atribut System.Security.Permissions.HostProtectionAttribute. Untuk informasi selengkapnya, lihat Membuat perakitan dan pembatasan model pemrograman integrasi CLR.

HostProtectionAttribute bukan izin keamanan sebanyak cara untuk meningkatkan keandalan, karena mengidentifikasi konstruksi kode tertentu, baik jenis atau metode, yang mungkin tidak diizinkan host. Penggunaan HostProtectionAttribute memberlakukan model pemrograman yang membantu melindungi stabilitas host.

Atribut perlindungan host

HPAs mengidentifikasi jenis atau anggota yang tidak sesuai dengan model pemrograman host dan mewakili peningkatan tingkat ancaman keandalan berikut:

  • Jika berbahaya.
  • Dapat menyebabkan destabilisasi kode pengguna yang dikelola server.
  • Dapat menyebabkan destabilisasi proses server itu sendiri.

SQL Server melarang penggunaan jenis atau anggota yang memiliki HostProtectionAttribute yang menentukan enumerasi System.Security.Permissions.HostProtectionResource dengan nilai ExternalProcessMgmt, ExternalThreading, MayLeakOnAbort, SecurityInfrastructure, SelfAffectingProcessMgmt, SelfAffectingThreading, SharedState, Synchronization, atau UI. Ini mencegah rakitan memanggil anggota yang mengaktifkan status berbagi, melakukan sinkronisasi, dapat menyebabkan kebocoran sumber daya saat penghentian, atau memengaruhi integritas proses SQL Server.

Jenis dan anggota yang tidak diizinkan

Artikel berikut mengidentifikasi jenis dan anggota yang nilai HostProtectionResource nya tidak diizinkan SQL Server.

Daftar dalam artikel ini dihasilkan dari rakitan yang didukung. Untuk informasi selengkapnya, lihat pustaka .NET Framework yang didukung.

Di bagian ini

Artikel Deskripsi
Jenis dan anggota yang tidak diizinkan di Microsoft.VisualBasic.dll Mencantumkan jenis dan anggota dalam Microsoft.VisualBasic.dll yang nilai HPA-nya tidak diizinkan.
Jenis dan anggota yang tidak diizinkan di mscorlib.dll Mencantumkan jenis dan anggota dalam mscorlib.dll yang nilai HPA-nya tidak diizinkan.
Jenis dan anggota yang tidak diizinkan di System.dll Mencantumkan jenis dan anggota dalam System.dll yang nilai HPA-nya tidak diizinkan.
Jenis dan anggota yang tidak diizinkan di System.Data.dll Mencantumkan jenis dan anggota di System.Data.dll yang nilai HPA-nya tidak diizinkan.
Jenis dan anggota yang tidak diizinkan di System.Core.dll Mencantumkan jenis dan anggota dalam System.Core.dll yang nilai HPA-nya tidak diizinkan.