Строгая безопасность среды CLRCLR strict security

THIS TOPIC APPLIES TO: yesSQL ServernoAzure SQL DatabasenoAzure SQL Data Warehouse noParallel Data Warehouse

Управляет интерпретацией разрешения SAFE, EXTERNAL ACCESS, UNSAFE в среде SQL ServerSQL Server.Controls the interpretation of the SAFE, EXTERNAL ACCESS, UNSAFE permission in SQL ServerSQL Server.

ЗначениеValue ОписаниеDescription
00 Disabled: обеспечивает обратную совместимость.Disabled - Provided for backwards compatibility. Использование значение Disabled не рекомендуется.Disabled value is not recommended.
11 Enabled: заставляет Компонент Database EngineDatabase Engine игнорировать сведения PERMISSION_SET о сборках и всегда интерпретировать их как UNSAFE.Enabled - Causes the Компонент Database EngineDatabase Engine to ignore the PERMISSION_SET information on the assemblies, and always interpret them as UNSAFE. Значение SQL Server 2017SQL Server 2017 по умолчанию — Enabled.Enabled is the default value for SQL Server 2017SQL Server 2017.

Предупреждение

Среда CLR использует управление доступом для кода (CAS) в .NET Framework, которое больше не поддерживается в качестве границы безопасности.CLR uses Code Access Security (CAS) in the .NET Framework, which is no longer supported as a security boundary. Сборки среды CLR, созданные с помощью PERMISSION_SET = SAFE, могут получать доступ к внешним системным ресурсам, вызывать неуправляемый код и получать права системного администратора.A CLR assembly created with PERMISSION_SET = SAFE may be able to access external system resources, call unmanaged code, and acquire sysadmin privileges. Начиная с SQL Server 2017SQL Server 2017, появился параметр sp_configure, называемый clr strict security, для повышения безопасности сборок среды CLR.Beginning with SQL Server 2017SQL Server 2017, an sp_configure option called clr strict security is introduced to enhance the security of CLR assemblies. clr strict security включен по умолчанию и рассматривает сборки SAFE и EXTERNAL_ACCESS, как если бы они были помечены UNSAFE.clr strict security is enabled by default, and treats SAFE and EXTERNAL_ACCESS assemblies as if they were marked UNSAFE. Параметр clr strict security можно отключить для обеспечения обратной совместимости, но это делать не рекомендуется.The clr strict security option can be disabled for backward compatibility, but this is not recommended. Корпорация Майкрософт рекомендует подписывать все сборки с помощью сертификата или асимметричного ключа с соответствующим именем входа, которому предоставлено разрешение UNSAFE ASSEMBLY в базе данных master.Microsoft recommends that all assemblies be signed by a certificate or asymmetric key with a corresponding login that has been granted UNSAFE ASSEMBLY permission in the master database. Администраторы SQL ServerSQL Server также могут добавлять сборки в список сборок, которым должно доверять ядро СУБД. SQL ServerSQL Server administrators can also add assemblies to a list of assemblies, which the Database Engine should trust. Дополнительные сведения см. в разделе sys.sp_add_trusted_assembly.For more information, see sys.sp_add_trusted_assembly.

ЗамечанияRemarks

Если параметр PERMISSION_SET включен, операторы CREATE ASSEMBLY и ALTER ASSEMBLY игнорируются во время выполнения, а параметры PERMISSION_SET сохраняются в метаданных.When enabled, the PERMISSION_SET option in the CREATE ASSEMBLY and ALTER ASSEMBLY statements is ignored at run-time, but the PERMISSION_SET options are preserved in metadata. Игнорирование параметра минимизирует сбои в выполнении имеющихся в коде операторов.Ignoring the option, minimizes breaking existing code statements.

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

Важно!

После включения строгой безопасности сборки без подписи загружаться не будут.After enabling strict security, any assemblies that are not signed will fail to load. Необходимо либо изменить, либо заново создать каждую сборку, чтобы она была подписана сертификатом или асимметричным ключом, имеющим соответствующее имя входа с разрешением UNSAFE ASSEMBLY на сервере.You must either alter or drop and recreate each assembly so that it is signed with a certificate or asymmetric key that has a corresponding login with the UNSAFE ASSEMBLY permission on the server.

PermissionsPermissions

Изменение параметраTo change this option

Требует разрешения sysadmin или членства в предопределенной роли сервера CONTROL SERVER.Requires CONTROL SERVER permission, or membership in the sysadmin fixed server role.

Создание сборки среды CLRTo create an CLR assembly

Для создания сборки среды CLR при включении CLR strict security требуются следующие разрешения:The following permissions required to create a CLR assembly when CLR strict security is enabled:

  • Пользователь должен иметь разрешение CREATE ASSEMBLY.The user must have the CREATE ASSEMBLY permission
  • Кроме того, должно выполняться одно из следующих условий:And one of the following conditions must also be true:
    • Сборка должна была подписана сертификатом или асимметричным ключом, имеющим соответствующее имя входа с разрешением UNSAFE ASSEMBLY на сервере.The assembly is signed with a certificate or asymmetric key that has a corresponding login with the UNSAFE ASSEMBLY permission on the server. Рекомендуется использовать подпись сборки.Signing the assembly is recommended.
    • База данных имеет TRUSTWORTHY свойство со значением ON и базы данных, принадлежащие имени входа, имеющем разрешение UNSAFE ASSEMBLY на сервере.The database has the TRUSTWORTHY property set to ON, and the database is owned by a login that has the UNSAFE ASSEMBLY permission on the server. Использовать этот параметр не рекомендуется.This option is not recommended.

См. также:See Also

Параметры конфигурации сервера (SQL Server) Server Configuration Options (SQL Server)
sp_configure (Transact-SQL) sp_configure (Transact-SQL)
Параметр конфигурации сервера «clr enabled»clr enabled Server Configuration Option