Строгая безопасность среды CLR

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

Управляет интерпретацией разрешения SAFE, EXTERNAL ACCESS, UNSAFE в среде SQL Server.

Значение Описание
0 Disabled: обеспечивает обратную совместимость. Использование значение Disabled не рекомендуется.
1 Enabled: заставляет Компонент Database Engine игнорировать сведения PERMISSION_SET о сборках и всегда интерпретировать их как UNSAFE. Enabled является значением по умолчанию, начиная с SQL Server 2017 (14.x);.

Предупреждение

Среда CLR использует управление доступом для кода (CAS) в .NET Framework, которое больше не поддерживается в качестве границы безопасности. Сборки среды CLR, созданные с помощью PERMISSION_SET = SAFE, могут получать доступ к внешним системным ресурсам, вызывать неуправляемый код и получать права системного администратора. Начиная с SQL Server 2017 (14.x);, появился параметр sp_configure, называемый clr strict security, для повышения безопасности сборок среды CLR. clr strict security включен по умолчанию и рассматривает сборки SAFE и EXTERNAL_ACCESS, как если бы они были помечены UNSAFE. Параметр clr strict security можно отключить для обеспечения обратной совместимости, но это делать не рекомендуется. Корпорация Майкрософт рекомендует подписывать все сборки с помощью сертификата или асимметричного ключа с соответствующим именем входа, которому предоставлено разрешение UNSAFE ASSEMBLY в базе данных master. Администраторы SQL Server также могут добавлять сборки в список сборок, которым должно доверять ядро СУБД. Дополнительные сведения см. в разделе sys.sp_add_trusted_assembly.

Remarks

Если параметр PERMISSION_SET включен, операторы CREATE ASSEMBLY и ALTER ASSEMBLY игнорируются во время выполнения, а параметры PERMISSION_SET сохраняются в метаданных. Игнорирование параметра минимизирует сбои в выполнении имеющихся в коде операторов.

Аргумент CLR strict security имеет тип advanced option.

Важно!

После включения строгой безопасности сборки без подписи загружаться не будут. Необходимо либо изменить, либо заново создать каждую сборку, чтобы она была подписана сертификатом или асимметричным ключом, имеющим соответствующее имя входа с разрешением UNSAFE ASSEMBLY на сервере.

Разрешения

Изменение параметра

Требует разрешения sysadmin или членства в предопределенной роли сервера CONTROL SERVER.

Создание сборки среды CLR

Для создания сборки среды CLR при включении CLR strict security требуются следующие разрешения:

  • Пользователь должен иметь разрешение CREATE ASSEMBLY.
  • Кроме того, должно выполняться одно из следующих условий:
    • Сборка должна была подписана сертификатом или асимметричным ключом, имеющим соответствующее имя входа с разрешением UNSAFE ASSEMBLY на сервере. Рекомендуется использовать подпись сборки.
    • База данных имеет TRUSTWORTHY свойство со значением ON и базы данных, принадлежащие имени входа, имеющем разрешение UNSAFE ASSEMBLY на сервере. Использовать этот параметр не рекомендуется.

См. также:

Параметры конфигурации сервера (SQL Server)
sp_configure (Transact-SQL)
Параметр конфигурации сервера «clr enabled»