Конфигурация сервера: clr strict security

Область применения: SQL Server

Управляет интерпретацией SAFEили EXTERNAL_ACCESSUNSAFE разрешением в SQL Server. Дополнительные сведения об этих разрешениях см. в разделе "Проектирование сборок".

значение Описание
0 Disabled. Предоставляется для обратной совместимости. Не рекомендуется задавать это значение 0 .
1 Включен. Вызывает ядро СУБД игнорировать PERMISSION_SET сведения о сборках и всегда интерпретировать их как UNSAFE. В SQL Server 2017 (14.x) и более поздних версиях 1 используется значение по умолчанию.

Безопасность доступа к коду больше не поддерживается

Среда CLR использует управление доступом для кода (CAS) в .NET Framework, которое больше не поддерживается в качестве границы безопасности. Сборка СРЕДЫ CLR, созданная с PERMISSION_SET = SAFE возможностью доступа к ресурсам внешней системы, вызову неуправляемого кода и получению привилегий sysadmin. В SQL Server 2017 (14.x) и более поздних версиях clr strict security обрабатываются SAFE и EXTERNAL_ACCESS сборки, как если бы они помечены UNSAFE.

Рекомендуется подписать все сборки сертификатом или асимметричным ключом с соответствующим именем входа, предоставленным UNSAFE ASSEMBLY в master базе данных. Администраторы SQL Server также могут добавлять сборки в список сборок, которым должен доверять ядро СУБД. Дополнительные сведения см. в разделе sys.sp_add_trusted_assembly.

Замечания

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

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

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

Разрешения

Изменение этого параметра

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

Создание сборки СРЕДЫ CLR

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

  • Пользователь должен иметь разрешение CREATE ASSEMBLY.

  • Одно из следующих условий также должно иметь значение true:

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

    • База данных имеет TRUSTWORTHY свойство со значением ON и базы данных, принадлежащие имени входа, имеющем разрешение UNSAFE ASSEMBLY на сервере. Этот параметр использовать не рекомендуется.

Примеры

В следующем примере сначала отображается текущий clr strict security параметр параметра, а затем устанавливается значение 1 параметра (включено).

EXEC sp_configure 'clr strict security';
GO
EXEC sp_configure 'clr strict security' , '1';
RECONFIGURE;
GO