Compartir a través de


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_ACCESSo 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 Crear un de ensamblado y restricciones del modelo de programación de integración de CLR.

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, Synchronizationo 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.