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


Интеграция с общеязыковой средой выполнения

Область применения: SQL Server Управляемый экземпляр SQL Azure

Microsoft SQL Server и Управляемый экземпляр SQL Azure позволяют реализовать некоторые функции с языками .NET с помощью интеграции среды CLR на стороне SQL Server (процедуры, функции и триггеры). Среда CLR предоставляет управляемому коду такие услуги, как межъязыковая интеграция, управление доступом для кода, управление временем существования объекта, а также поддержку отладки и профилирования. Для пользователей SQL Server и разработчиков приложений интеграция CLR означает, что теперь можно создавать хранимые процедуры, триггеры, определяемые пользователем типы, определяемые пользователем функции (скалярные и табличные значения), а также определяемые пользователем агрегатные функции с помощью любого языка платформа .NET Framework, включая Microsoft Visual Basic .NET и Microsoft Visual C#. SQL Server включает предварительно установленную платформа .NET Framework версии 4.

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

Среда 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. Дополнительные сведения см. в статье о параметре clr strict security. Администраторы SQL Server также могут добавлять сборки в список сборок, которым должен доверять ядро СУБД. Дополнительные сведения см. в разделе sys.sp_add_trusted_assembly.

В этом 6-минутном видео показано, как использовать среду CLR в Управляемый экземпляр SQL Azure:

Когда следует использовать модули CLR

Интеграция CLR позволяет реализовать сложные функции, доступные в платформа .NET Framework таких как регулярные выражения, код для доступа к внешним ресурсам (серверам, веб-службам, базам данных), пользовательскому шифрованию и т. д. Ниже приведены некоторые преимущества интеграции среды CLR на стороне сервера:

  • Более эффективная модель программирования. Языки платформа .NET Framework во многих отношениях более богаты, чем Transact-SQL, предлагая конструкции и возможности, ранее недоступные разработчикам SQL Server. Разработчики могут также использовать всю мощь библиотеки платформы .NET Framework (.NET Framework Library), предоставляющей обширный набор классов, которые позволяют быстро и эффективно решать возникающие при разработке проблемы.

  • Улучшена безопасность и безопасность. Управляемый код выполняется в среде CLR, размещаемой в компоненте Database Engine. SQL Server использует это для обеспечения более безопасной и безопасной альтернативы расширенным хранимым процедурам, доступным в более ранних версиях SQL Server.

  • Возможность определять типы данных и агрегатные функции. Определяемые пользователем типы и определяемые пользователем агрегаты являются двумя новыми объектами управляемой базы данных, расширяющими возможности хранилища и запросов SQL Server.

  • Упрощенная разработка с помощью стандартизованной среды. Разработка баз данных интегрирована в будущие выпуски среды разработки Microsoft Visual Studio .NET. Для разработки и отладки объектов и скриптов баз данных разработчики используют те же инструментальные средства, что и для разработки компонентов и служб платформы .NET Framework клиентского и среднего уровня.

  • Потенциал для повышения производительности и масштабируемости. Во многих случаях средства компиляции и модели выполнения платформы .NET Framework предоставляют выигрыш в производительности по сравнению с Transact-SQL.

Расширения языка SQL Server предоставляют альтернативную среду выполнения для сред выполнения, близких к ядру СУБД. Обсуждение различий между SQL CLR и расширениями языка SQL см. в разделе Сравнение расширений языка SQL Server и SQL CLR.

В следующей таблице приводится список подразделов данного раздела.

Общие сведения об интеграции со средой CLR
Описывает виды объектов, которые можно создавать с помощью интеграции СРЕДЫ CLR. Также проверяет требования к созданию объектов базы данных с помощью интеграции СРЕДЫ CLR.

Новые возможности в интеграции со средой CLR
Описывает новые возможности в данном выпуске.

Архитектура интеграции со средой CLR
Описание целей разработки интеграции со средой CLR.

Включение интеграции со средой CLR
Описание включения интеграции со средой CLR.

См. также

Установка платформа .NET Framework (только SQL Server)
Производительность интеграции со средой CLR