Атрибуты защиты узла и программирование средств интеграции со средой CLR
Среда CLR предоставляет механизм для аннотирования управляемых API, входящих в состав платформы .NET Framework, при помощи определенных атрибутов, которые могут потребоваться серверу CLR (такому как SQL Server), начиная с версии SQL Server 2005. Примеры таких атрибутов защиты сервера включают следующее:
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. |
В этом разделе
Запрещенные типы и элементы в 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