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


Атрибуты защиты узла и программирование средств интеграции со средой CLR

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

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

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

  • Синхронизация, которая указывает, предоставляет ли 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 применяет модель программирования, которая помогает защитить стабильность узла.

Атрибуты защиты сервера

Атрибуты защиты сервера определяют типы или элементы, которые не подходят для серверной модели программирования и представляют следующие возрастающие уровни угрозы надежности:

  • Во всем остальном являются безопасными.

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

  • Могут привести к дестабилизации самого процесса сервера.

SQL Server запрещает использование типа или члена, имеющего HostProtectionAttribute, указывающего перечисление System.Security.Permissions.HostProtectionResource со значением ExternalProcessMgmt, ExternalThreading, MayLeakOnAbort, SecurityInfrastructure, SelfAffectingProcessMgmnt, SelfAffectingThreading, SharedState, Синхронизация или пользовательский интерфейс. Таким образом, сборки не могут вызывать члены, которые активируют общее состояние, выполняют синхронизацию, могут привести к утечке ресурсов при завершении или влияют на целостность процесса 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, для которых запрещены значения атрибутов защиты сервера.

См. также

Безопасность доступом для кода на основе интеграции со средой CLR
Ограничения модели программирования на основе интеграции со средой CLR
Создание сборки