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