Atributos de protección del host y programación de la integración CLR

Se aplica a:SQL Server

Common Language Runtime (CLR) proporciona un mecanismo para anotar interfaces de programación de aplicaciones administradas (API) que forman parte de .NET Framework con ciertos atributos que pueden ser de interés para un host de CLR, como SQL Server, a partir de SQL Server 2005 (9.x). 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).

  • Sincronización, 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 no permitidas en el entorno hospedado a través de la seguridad de acceso al código (CAS). Los requisitos 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 está registrado en el servidor, mediante la instrucción CREATE ASSEMBLY . El código que se ejecuta en 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, vea Crear un ensamblado y restricciones del modelo de programación de integración CLR.

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 puede no permitir. El uso de HostProtectionAttribute aplica un modelo de programación que ayuda a proteger la estabilidad del host.

Atributos de protección del host

Los HPA identifican los tipos o miembros que no se ajustan al modelo de programación del 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 System.Security.Permissions.HostProtectionResource con un valor de ExternalProcessMgmt, ExternalThreading, MayLeakOnAbort, SecurityInfrastructure, SelfAffectingProcessMgmnt, SelfAffectingThreading, 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 temas siguientes se identifican los tipos y miembros cuyos valores HostProtectionResource no están permitidos por SQL Server.

Nota

Las listas de estos temas se generaron a partir de los ensamblados admitidos. Para obtener más información, consulte Bibliotecas de .NET Framework compatibles.

En esta sección

Miembros y tipos no permitidos en Microsoft.VisualBasic.dll
Enumera los tipos y miembros de Microsoft.VisualBasic.dll cuyos valores de HPA no se permiten.

Miembros y tipos 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.

Consulte también

Seguridad de acceso del código de integración CLR
Restricciones del modelo de programación de la integración CLR
Crear un ensamblado