Строгая безопасность среды CLR
Область применения: SQL Server
Управляет интерпретацией SAFE
разрешения , EXTERNAL ACCESS
UNSAFE
разрешения в SQL Server.
значение | Описание |
---|---|
0 | Disabled: обеспечивает обратную совместимость. Использование значение Disabled не рекомендуется. |
1 | Включено. Вызывает ядро СУБД игнорировать 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.
Замечания
Если параметр 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»
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по