Атрибуты защиты узла и программирование средств интеграции со средой CLR
Начиная с версии SQL Server 2005, среда CLR предоставляет механизм для аннотирования управляемых API-интерфейсов, которые являются частью платформы .NET Framework, при помощи определенных атрибутов, которые могут быть интересны узлу CLR, например SQL Server. Примеры таких атрибутов защиты узла:
SharedState, который указывает, предоставляет ли API-интерфейс возможность создавать или управлять общим состоянием (например, поля статического класса).
Synchronization, который указывает, предоставляет ли API-интерфейс возможность выполнять синхронизацию потоков.
ExternalProcessMgmt, который указывает, предоставляет ли API-интерфейс способ управлять процессом узла.
C учетом этих атрибутов SQL Server при помощи управления доступом для кода определяет список атрибутов защиты узла, которые запрещены в размещенной среде. Требования управления доступом для кода указываются одним из трех наборов разрешений 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 версии 2.0 с пакетом обновления 1 (SP1). Дополнительные сведения см. в разделе Поддерживаемые библиотеки платформы .NET Framework. |
Тема |
Описание |
---|---|
Приведены типы и элементы из файл Microsoft.VisualBasic.dll, значение атрибутов защиты узла которых запрещены. |
|
Приведены типы и элементы из файл mscorlib.dll, значение атрибутов защиты узла которых запрещены. |
|
Приведены типы и элементы из файл System.dll, значение атрибутов защиты узла которых запрещены. |
|
Приведены типы и элементы из файл System.Data.dll, значение атрибутов защиты узла которых запрещены. |
|
Приведены типы и элементы из файл System.Core.dll, значение атрибутов защиты узла которых запрещены. |