Поделиться через


Управление сборками интеграции CLR

Applies to:SQL Server

Управляемый код компилируется, а затем развертывается в единицах, называемых сборкой среды CLR. Сборка упаковается в виде файла DLL или исполняемого файла (.exe) . Исполняемый файл можно запускать, а для вызова динамической библиотеки нужно подключить ее к существующему приложению. Управляемые сборки DLL можно загружать и размещать в SQL Server. SQL Server требует регистрации сборки в базе данных с помощью инструкции CREATE ASSEMBLY, прежде чем ее можно будет загрузить в процессе и использовать. Сборки также можно обновить из более последней версии с помощью инструкции ALTER ASSEMBLY или удалить из SQL Server с помощью инструкции DROP ASSEMBLY.

Сведения о сборке хранятся в таблице sys.assembly_files в базе данных, где установлена сборка. Таблица sys.assembly_files содержит следующие столбцы.

Column Description
assembly_id Идентификатор, определенный для сборки. Это число назначается всем объектам, относящимся к одной сборке.
name Имя объекта.
file_id Число, определяющее каждый объект, с первым объектом, связанным с заданным assembly_id присваивается значение 1. Если несколько объектов связаны с одной и той же assembly_id, то каждое последующее file_id значение увеличивается на 1.
content Шестнадцатеричное представление сборки или файла.

В этом разделе

Article Description
Создание сборки Описание создания SAFE, EXTERNAL_ACCESSи сборок CLR UNSAFE в SQL Server
Изменение сборки Описание обновления сборок СРЕДЫ CLR в SQL Server
Удаление сборки Обсуждение удаления сборок CLR из SQL Server

Безопасность доступа к коду больше не поддерживается

Среда CLR использует управление доступом для кода (CAS) в .NET Framework, которое больше не поддерживается в качестве границы безопасности. Сборка СРЕДЫ CLR, созданная с PERMISSION_SET = SAFE возможностью доступа к ресурсам внешней системы, вызову неуправляемого кода и получению привилегий sysadmin. В 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 также могут добавлять сборки в список сборок, которым должен доверять ядро СУБД. For more information, see sys.sp_add_trusted_assembly.