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 dengan atribut tertentu yang mungkin menarik bagi host CLR, seperti SQL Server, dimulai dengan SQL Server 2005 (9.x). Contoh atribut perlindungan host (HPAs) tersebut meliputi:

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

  • Sinkronisasi, yang menunjukkan apakah API mengekspos kemampuan untuk melakukan sinkronisasi antar alur.

  • 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: AMAN, EXTERNAL_ACCESS, atau TIDAK AMAN. Salah satu dari ketiga tingkat keamanan ini ditentukan ketika rakitan terdaftar di server, menggunakan pernyataan CREATE ASSEMBLY . Kode yang dijalankan dalam kumpulan izin SAFE atau EXTERNAL_ACCESS harus menghindari jenis atau anggota tertentu yang menerapkan atribut System.Security.Permissions.HostProtectionAttribute . Untuk informasi selengkapnya, lihat Membuat Pembatasan Model Pemrograman Integrasi Assembly dan 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 Tuan Rumah

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, SelfAffectingProcessMgmnt, 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 Dilarang

Topik berikut mengidentifikasi jenis dan anggota yang nilai HostProtectionResource-nya 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 dalam Microsoft.VisualBasic.dll yang nilai HPA-nya tidak diizinkan.

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

Tipe dan Anggota yang Tidak Diizinkan di System.dll
Mencantumkan jenis dan anggota dalam 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 dalam System.Core.dll yang nilai HPA-nya tidak diizinkan.

Lihat Juga

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