Bagikan melalui


Atribut Perlindungan Host dan Pemrograman Integrasi CLR

Runtime bahasa umum (CLR) menyediakan mekanisme untuk membuat anotasi antarmuka pemrograman aplikasi terkelola (API) yang merupakan bagian dari .NET Framework dengan atribut tertentu yang mungkin menarik bagi host CLR, seperti SQL Server, dimulai dengan SQL Server 2005. 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_ACCESSatau UNSAFE. Salah satu dari tiga tingkat keamanan ini ditentukan ketika rakitan terdaftar di server, menggunakan CREATE ASSEMBLY pernyataan . Kode yang dijalankan dalam SAFE set izin atau EXTERNAL_ACCESS harus menghindari jenis atau anggota tertentu yang menerapkan System.Security.Permissions.HostProtectionAttribute atribut . 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 dilarang oleh host. Penggunaan HostProtectionAttribute memberlakukan model pemrograman yang membantu melindungi stabilitas host.

Atribut Perlindungan Tuan Rumah

HPAs mengidentifikasi jenis atau anggota yang tidak sesuai dengan model pemrograman host dan mewakili tingkat ancaman keandalan yang meningkat 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 yang menentukan System.Security.Permissions.HostProtectionResource enumerasi dengan nilai ExternalProcessMgmt, , ExternalThreading, MayLeakOnAbortSecurityInfrastructure, SelfAffectingProcessMgmnt, SelfAffectingThreading, , SharedState, Synchronization, atau UI.HostProtectionAttribute 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 Dilarang

Topik berikut mengidentifikasi jenis dan anggota yang nilainya HostProtectionResource tidak diizinkan oleh SQL Server.

Catatan

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

Di Bagian Ini

Tipe dan Anggota yang Tidak Diizinkan di Microsoft.VisualBasic.dll
Mencantumkan jenis dan anggota di Microsoft.VisualBasic.dll yang nilai HPA-nya tidak diizinkan.

Tipe dan Anggota yang Tidak Diizinkan di mscorlib.dll
Mencantumkan jenis dan anggota di mscorlib.dll yang nilai HPA-nya tidak diizinkan.

Tipe dan Anggota yang Tidak Diizinkan di System.dll
Mencantumkan jenis dan anggota di System.dll yang nilai HPA-nya tidak diizinkan.

Tipe dan Anggota yang Tidak Diizinkan di System.Data.dll
Mencantumkan jenis dan anggota di System.Data.dll yang nilai HPA-nya tidak diizinkan.

Tipe dan Anggota yang Tidak Diizinkan di System.Core.dll
Mencantumkan jenis dan anggota di System.Core.dll yang nilai HPA-nya tidak diizinkan.

Lihat juga

Keamanan Akses Kode Integrasi CLR
Pembatasan Model Pemrograman Integrasi CLR
Membuat Assembly