Строгая безопасность среды 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»
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по