Знакомство с интеграцией CLR в SQL Server

Среда CLR — это сердце платформа .NET Framework и предоставляет среду выполнения для всех платформа .NET Framework кода. Код, выполняемый в среде CLR, называется управляемым кодом. Среда CLR предоставляет различные функции и услуги, требуемые для выполнения программы, включая JIT-компиляцию, распределение и управление памятью, соблюдение безопасности типов, обработку исключений, управление потоками и безопасность.

Если среда CLR размещается в Microsoft SQL Server (что принято называть интеграцией со средой CLR), то появляется возможность разрабатывать в управляемом коде хранимые процедуры, триггеры, определяемые пользователем функции, определяемые пользователем типы и определяемые пользователем статистические функции. Из-за того, что управляемый код перед выполнением производит компиляцию в машинный код, можно достичь значительного увеличения производительности в некоторых сценариях.

Управляемый код, выполняемый в платформа .NET Framework, использует кодовую безопасность (CAS), ссылки на код и домены приложений, чтобы запретить сборкам выполнять определенные операции. В SQL Server используется CAS для обеспечения безопасности управляемого кода и предотвращения нарушений безопасности операционной системы или сервера баз данных.

Примечание.

Безопасность доступа к коду (CAS) устарела во всех версиях платформа .NET Framework и .NET. Последние версии .NET не учитывают заметки CAS и создают ошибки, если используются API, связанные с CAS. Разработчики должны искать альтернативные средства выполнения задач безопасности.

Этот раздел предназначен для предоставления лишь такого количества сведений, с которого можно приступать к программированию в рамках интеграции SQL Server со средой CLR, и не рассчитан на всестороннее изложение. Дополнительные сведения см. в разделе "Общие сведения об интеграции среды CLR".

Включение интеграции со средой CLR

Возможность интеграции со средой CLR отключена в Microsoft SQL Server по умолчанию, поэтому ее нужно включить, чтобы использовать объекты, использующие интеграцию со средой CLR. Чтобы включить интеграцию со средой CLR с помощью Transact-SQL, воспользуйтесь параметром clr enabled хранимой процедуры sp_configure, как показано ниже.

sp_configure 'clr enabled', 1  
GO  
RECONFIGURE  
GO  

Интеграцию со средой CLR можно отключить, присвоив параметру clr enabled значение 0. При этом SQL Server прекращает выполнять все процедуры CLR и выгружает все домены приложений.

Дополнительные сведения см. в разделе "Включение интеграции СРЕДЫ CLR".

Развертывание сборки среды CLR

После тестирования и проверки методов CLR на тестовом сервере их можно распространить на рабочих серверах с помощью скрипта развертывания. Скриптов развертывания можно создать вручную или с помощью SQL Server Management Studio. Дополнительные сведения см. в документации по SQL Server для используемой версии SQL Server.

Документация по SQL Server

  1. Развертывание объектов базы данных CLR

Безопасность интеграции со средой CLR

Интеграция модели безопасности Microsoft SQL Server со средой Microsoft .NET Framework CLR позволяет поддерживать доступ для различных типов объектов (как CLR, так и не CLR), выполняемых в SQL Server, а также обеспечивать безопасность этого доступа. Для вызова этих объектов может применяться инструкция Transact-SQL или другой объект CLR, выполняемый на сервере.

Дополнительные сведения см. в разделе CLR Integration Security.

Отладка сборки CLR

В Microsoft SQL Server предоставляется поддержка для отладки кода Transact-SQL и объектов среды CLR в базе данных. Процесс отладки работает с кодом на всех используемых языках: пользователи могут беспрепятственно переходить к коду объектов среды CLR из кода Transact-SQL и наоборот.

Дополнительные сведения см. в разделе "Отладка объектов базы данных CLR".

См. также