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

Применимо к:SQL Server

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

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

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

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

Учитывая эти атрибуты, SQL Server указывает список HPA, которые запрещены в размещенной среде с помощью безопасности доступа к коду (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, Synchronization или 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, для которых запрещены значения атрибутов защиты сервера.

См. также:

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