Конфигурация сервера: clr strict security
Область применения: SQL Server
Управляет интерпретацией SAFE
или EXTERNAL_ACCESS
UNSAFE
разрешением в 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