Atributos de protección de host y programación de integración clR
Se aplica a:SQL Server
Common Language Runtime (CLR) proporciona un mecanismo para anotar las interfaces de programación de aplicaciones administradas (API) que forman parte de .NET Framework. Estos atributos pueden ser de interés para un host de CLR, como SQL Server. Los ejemplos de estos atributos de protección del host (HPA) incluyen:
SharedState
, que indica si la API expone la capacidad de crear o administrar el estado compartido (por ejemplo, campos de clase estática).Synchronization
, que indica si la API expone la capacidad de realizar la sincronización entre subprocesos.ExternalProcessMgmt
, que indica si la API expone una manera de controlar el proceso de host.
Dados estos atributos, SQL Server especifica una lista de HPA que no se permiten en el entorno hospedado a través de la seguridad de acceso al código (CAS). Los requisitos de CAS se especifican mediante uno de los tres conjuntos de permisos de SQL Server: SAFE
, EXTERNAL_ACCESS
o UNSAFE
. Uno de estos tres niveles de seguridad se especifica cuando el ensamblado se registra en el servidor mediante la instrucción CREATE ASSEMBLY
. El código que se ejecuta dentro de los conjuntos de permisos SAFE
o EXTERNAL_ACCESS
debe evitar determinados tipos o miembros que tengan aplicado el atributo System.Security.Permissions.HostProtectionAttribute
. Para obtener más información, consulte
El HostProtectionAttribute
no es un permiso de seguridad tanto como una manera de mejorar la confiabilidad, en que identifica construcciones de código específicas, tipos o métodos, que el host podría no permitir. El uso del HostProtectionAttribute
aplica un modelo de programación que ayuda a proteger la estabilidad del host.
Atributos de protección de host
Las HPA identifican tipos o miembros que no se ajustan al modelo de programación de host y representan los siguientes niveles crecientes de amenaza de confiabilidad:
- En caso contrario son favorables.
- Podrían provocar la desestabilización del código de usuario administrado por servidor.
- Podría provocar la desestabilización del propio proceso de servidor.
SQL Server no permite el uso de un tipo o miembro que tiene un HostProtectionAttribute
que especifica una enumeración de System.Security.Permissions.HostProtectionResource
con un valor de ExternalProcessMgmt
, ExternalThreading
, MayLeakOnAbort
, SecurityInfrastructure
, SelfAffectingProcessMgmnt
, SelfAffectingThreading
, SharedState
, SharedState
, Synchronization
o UI
. Esto impide que los ensamblados llamen a los miembros que habilitan el estado compartido, realizan una sincronización, podrían provocar una pérdida de recursos al finalizar o afectan a la integridad del proceso de SQL Server.
Tipos y miembros no permitidos
En los artículos siguientes se identifican los tipos y miembros cuyos valores de HostProtectionResource
SQL Server no permite.
Las listas de estos artículos se generaron a partir de los ensamblados admitidos. Para obtener más información, consulte bibliotecas de .NET Framework compatibles.
En esta sección
Artículo | Descripción |
---|---|
tipos y miembros no permitidos en Microsoft.VisualBasic.dll | Enumera los tipos y miembros de Microsoft.VisualBasic.dll cuyos valores de HPA no se permiten. |
tipos y miembros no permitidos en mscorlib.dll | Enumera los tipos y miembros en mscorlib.dll cuyos valores HPA no se permiten. |
tipos y miembros no permitidos en System.dll | Enumera los tipos y miembros en System.dll cuyos valores HPA no se permiten. |
tipos y miembros no permitidos en System.Data.dll | Enumera los tipos y miembros en System.Data.dll cuyos valores HPA no se permiten. |
tipos y miembros no permitidos en System.Core.dll | Enumera los tipos y miembros en System.Core.dll cuyos valores HPA no se permiten. |
Contenido relacionado
- de seguridad de acceso al código de integración clR
- restricciones del modelo de programación de integración clR
- Crear un ensamblado