Поделиться через


Атрибуты защиты узла и программирование интеграции СРЕДЫ CLR

Область применения:SQL Server

Среда CLR предоставляет механизм для анотации интерфейсов программирования управляемых приложений (API), входящих в платформу .NET Framework. Эти атрибуты могут быть заинтересованы в узле среды CLR, например SQL Server. Примеры таких атрибутов защиты сервера включают следующее:

  • SharedState, указывающий, предоставляет ли API возможность создавать или управлять общим состоянием (например, поля статического класса).

  • Synchronization, указывающее, предоставляет ли API возможность выполнять синхронизацию между потоками.

  • ExternalProcessMgmt, который указывает, предоставляет ли API способ управления процессом узла.

Учитывая эти атрибуты, SQL Server указывает список HPAs, которые запрещены в размещенной среде с помощью безопасности доступа к коду (CAS). Требования К CAS задаются одним из трех наборов разрешений SQL Server: SAFE, EXTERNAL_ACCESSили UNSAFE. Один из этих трех уровней безопасности указывается при регистрации сборки на сервере с помощью инструкции CREATE ASSEMBLY. Код, выполняемый в SAFE или EXTERNAL_ACCESS наборы разрешений, должны избегать определенных типов или элементов, которые применяют атрибут System.Security.Permissions.HostProtectionAttribute. Дополнительные сведения см. в статье Создание сборки и ограничения модели программирования среды CLR .

HostProtectionAttribute не является разрешением на безопасность столько, сколько способ повышения надежности, в том, что он определяет определенные конструкции кода, типы или методы, которые узел может запретить. Использование HostProtectionAttribute применяет модель программирования, которая помогает защитить стабильность узла.

Атрибуты защиты узла

HPAs определяют типы или члены, которые не соответствуют модели программирования узла и представляют следующие растущие уровни угрозы надежности:

  • Во всем остальном являются безопасными.
  • Могут привести к дестабилизации управляемого сервером кода пользователя.
  • Могут привести к дестабилизации самого процесса сервера.

SQL Server запрещает использование типа или члена, имеющего HostProtectionAttribute, указывающего перечисление System.Security.Permissions.HostProtectionResource со значением ExternalProcessMgmt, ExternalThreading, MayLeakOnAbort, SecurityInfrastructure, SelfAffectingProcessMgmnt, SelfAffectingThreading, SharedStateSynchronization, SharedStateили UI. Таким образом, сборки не могут вызывать члены, которые активируют общее состояние, выполняют синхронизацию, могут привести к утечке ресурсов при завершении или влияют на целостность процесса SQL Server.

Запрещенные типы и члены

В следующих статьях определены типы и члены, HostProtectionResource которых значения SQL Server запрещены.

Списки в этих статьях были созданы из поддерживаемых сборок. Дополнительные сведения см. в разделе Поддерживаемые библиотеки .NET Framework.

В этом разделе

Статья Описание
запрещенные типы и члены в Microsoft.VisualBasic.dll Приведены типы и элементы из файла Microsoft.VisualBasic.dll, для которых запрещены значения атрибутов защиты сервера.
запрещенные типы и члены в mscorlib.dll Приведены типы и элементы из файла mscorlib.dll, для которых запрещены значения атрибутов защиты сервера.
запрещенные типы и члены в System.dll Приведены типы и элементы из файла System.dll, для которых запрещены значения атрибутов защиты сервера.
запрещенные типы и члены в System.Data.dll Приведены типы и элементы из файла System.Data.dll, для которых запрещены значения атрибутов защиты сервера.
запрещенные типы и члены в System.Core.dll Приведены типы и элементы из файла System.Core.dll, для которых запрещены значения атрибутов защиты сервера.