Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Область применения:SQL Server
Определяет интерпретацию разрешения SAFE, EXTERNAL_ACCESS или UNSAFE в SQL Server. Дополнительные сведения об этих разрешениях см. в разделе Проектирование сборок.
| значение | Описание |
|---|---|
0 |
Нетрудоспособный. Предусмотрено для обеспечения обратной совместимости. Установка этого значения 0 не рекомендуется, так как она может создать уязвимость безопасности. |
1 |
Включен. Заставляет ядро СУБД игнорировать информацию PERMISSION_SET о сборках и всегда интерпретировать их как UNSAFE. В SQL Server 2017 (14.x) и более поздних версиях 1 используется значение по умолчанию. |
Безопасность доступа к коду больше не поддерживается
CLR использует в .NET Framework механизм безопасности доступа кода (CAS), который больше не поддерживается в качестве границы безопасности. Сборка 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.Одно из следующих условий также должно выполняться:
Сборка подписана сертификатом или асимметричным ключом, которому соответствует учетная запись для входа, которой предоставлено разрешение
UNSAFE ASSEMBLYна сервере. Рекомендуется подписывать сборку.Для базы данных задано свойство
TRUSTWORTHYсо значениемON, и база данных принадлежит имени входа, имеющему разрешениеUNSAFE ASSEMBLYна сервере. Этот параметр использовать не рекомендуется.
Примеры
В следующем примере сначала отображается текущее значение параметра clr strict security, а затем этому параметру задаётся значение 1 (включено).
EXECUTE sp_configure 'clr strict security';
GO
EXECUTE sp_configure 'clr strict security', '1';
RECONFIGURE;
GO