Атрибуты защиты узла и программирование средств интеграции со средой 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 версии 2.0 с пакетом обновления 1 (SP1). Дополнительные сведения см. в разделе Поддерживаемые библиотеки платформы .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, для которых запрещены значения атрибутов защиты сервера.