Atrybuty ochrony hosta i programowanie integracji środowiska CLR
Dotyczy:programu SQL Server
Środowisko uruchomieniowe języka wspólnego (CLR) udostępnia mechanizm dodawania adnotacji do interfejsów programowania aplikacji zarządzanych (API), które są częścią programu .NET Framework. Te atrybuty mogą być interesujące dla hosta środowiska CLR, takiego jak SQL Server. Przykłady takich atrybutów ochrony hosta (HPA) obejmują:
SharedState
, który wskazuje, czy interfejs API uwidacznia możliwość tworzenia stanu udostępnionego lub zarządzania nim (na przykład pól klas statycznych).Synchronization
, który wskazuje, czy interfejs API uwidacznia możliwość przeprowadzania synchronizacji między wątkami.ExternalProcessMgmt
, który wskazuje, czy interfejs API uwidacznia sposób kontrolowania procesu hosta.
Biorąc pod uwagę te atrybuty, program SQL Server określa listę hpas, które są niedozwolone w środowisku hostowanym za pośrednictwem zabezpieczeń dostępu kodu (CAS). Wymagania cas są określane przez jeden z trzech zestawów uprawnień programu SQL Server: SAFE
, EXTERNAL_ACCESS
lub UNSAFE
. Jeden z tych trzech poziomów zabezpieczeń jest określony, gdy zestaw jest zarejestrowany na serwerze przy użyciu instrukcji CREATE ASSEMBLY
. Kod wykonywany w zestawach uprawnień SAFE
lub EXTERNAL_ACCESS
musi unikać niektórych typów lub elementów członkowskich, które mają zastosowany atrybut System.Security.Permissions.HostProtectionAttribute
. Aby uzyskać więcej informacji, zobacz
HostProtectionAttribute
nie jest uprawnieniem zabezpieczeń tak samo jak sposobem na poprawę niezawodności, w tym, że identyfikuje określone konstrukcje kodu, typy lub metody, które host może nie zezwalać. Użycie HostProtectionAttribute
wymusza model programowania, który pomaga chronić stabilność hosta.
Atrybuty ochrony hosta
HpAs identyfikują typy lub elementy członkowskie, które nie pasują do modelu programowania hosta i reprezentują następujące rosnące poziomy zagrożenia niezawodności:
- Są łagodne.
- Może prowadzić do destabilizacji kodu użytkownika zarządzanego przez serwer.
- Może prowadzić do destabilizacji samego procesu serwera.
Program SQL Server nie zezwala na użycie typu lub elementu członkowskiego, który ma HostProtectionAttribute
, który określa wyliczenie System.Security.Permissions.HostProtectionResource
z wartością ExternalProcessMgmt
, ExternalThreading
, MayLeakOnAbort
, SecurityInfrastructure
, SelfAffectingProcessMgmt
, SelfAffectingThreading
, SharedState
, Synchronization
lub UI
. Uniemożliwia to wywoływanie elementów członkowskich, które umożliwiają udostępnianie stanu, wykonywanie synchronizacji, może spowodować wyciek zasobów po zakończeniu lub wpłynąć na integralność procesu programu SQL Server.
Niedozwolone typy i elementy członkowskie
Poniższe artykuły identyfikują typy i elementy członkowskie, których HostProtectionResource
wartości programu SQL Server nie zezwalają.
Listy w tych artykułach zostały wygenerowane na podstawie obsługiwanych zestawów. Aby uzyskać więcej informacji, zobacz Obsługiwane biblioteki programu .NET Framework.
W tej sekcji
Artykuł | Opis |
---|---|
niedozwolone typy i elementy członkowskie w Microsoft.VisualBasic.dll | Wyświetla listę typów i elementów członkowskich w Microsoft.VisualBasic.dll, których wartości HPA są niedozwolone. |
niedozwolone typy i elementy członkowskie w mscorlib.dll | Wyświetla listę typów i elementów członkowskich w mscorlib.dll, których wartości HPA są niedozwolone. |
niedozwolone typy i elementy członkowskie w System.dll | Wyświetla listę typów i elementów członkowskich w System.dll, których wartości HPA są niedozwolone. |
niedozwolone typy i elementy członkowskie w System.Data.dll | Wyświetla listę typów i elementów członkowskich w System.Data.dll, których wartości HPA są niedozwolone. |
niedozwolone typy i elementy członkowskie w System.Core.dll | Wyświetla listę typów i elementów członkowskich w System.Core.dll, których wartości HPA są niedozwolone. |
Powiązana zawartość
- zabezpieczeń dostępu kodu integracji środowiska CLR
- ograniczenia modelu programowania integracji środowiska CLR
- Tworzenie zestawu