다음을 통해 공유


SQL Server CLR 통합 소개

CLR(공용 언어 런타임)은 .NET Framework의 핵심이며 모든 .NET Framework 코드에 대한 실행 환경을 제공합니다. CLR 내에서 실행되는 코드를 관리 코드라고 합니다. CLR에서는 JIT(Just-In-Time) 컴파일, 메모리 할당 및 관리, 형식 안전성 적용, 예외 처리, 스레드 관리 및 보안 같은 프로그램 실행을 위한 다양한 기능과 서비스를 제공합니다.

Microsoft SQL Server에서 호스트되는 CLR(CLR 통합이라고 함)을 사용하여 관리 코드에서 저장 프로시저, 트리거, 사용자 정의 함수, 사용자 정의 형식 및 사용자 정의 집계를 작성할 수 있습니다. 관리 코드는 실행 전에 네이티브 코드로 컴파일되므로 일부 시나리오에서 상당한 성능 향상을 달성할 수 있습니다.

.NET Framework에서 실행되는 관리 코드는 CAS(코드 액세스 보안), 코드 링크 및 애플리케이션 도메인을 사용하여 어셈블리가 특정 작업을 수행하지 못하도록 합니다. SQL Server는 CAS를 사용하여 관리 코드를 보호하고 운영 체제 또는 데이터베이스 서버의 손상을 방지합니다.

비고

CAS(코드 액세스 보안)는 .NET Framework 및 .NET의 모든 버전에서 더 이상 사용되지 않습니다. 최신 버전의 .NET은 CAS 주석을 준수하지 않으며 CAS 관련 API를 사용하는 경우 오류가 발생합니다. 개발자는 보안 작업을 수행하는 대체 수단을 찾아야 합니다.

이 섹션은 SQL Server CLR 통합을 사용하여 프로그래밍을 시작하기에 충분한 정보만 제공하기 위한 것이며 포괄적인 것은 아닙니다. 자세한 내용은 CLR(공용 언어 런타임) 통합 개요를 참조하세요.

CLR 통합 활성화

CLR(공용 언어 런타임) 통합 기능은 Microsoft SQL Server에서 기본적으로 해제되어 있으며 CLR 통합을 사용하여 구현된 개체를 사용하려면 사용하도록 설정해야 합니다. Transact-SQL을 사용하여 CLR 통합을 활성화하려면, 저장 프로시저의 clr enabled 옵션을 다음과 같이 사용합니다: sp_configure.

sp_configure 'clr enabled', 1  
GO  
RECONFIGURE  
GO  

clr enabled 옵션을 0으로 설정하면 CLR 통합이 비활성화됩니다. CLR 통합을 사용하지 않도록 설정하면 SQL Server는 모든 CLR 루틴 실행을 중지하고 모든 애플리케이션 도메인을 언로드합니다.

자세한 내용은 CLR 통합 사용 설정을 참조하세요.

CLR 어셈블리를 배포하기

CLR 메서드가 테스트 서버에서 테스트 및 확인되면 배포 스크립트를 사용하여 프로덕션 서버에 배포할 수 있습니다. 배포 스크립트는 수동으로 또는 SQL Server Management Studio를 사용하여 생성할 수 있습니다. 자세한 내용은 사용 중인 SQL Server 버전에 대한 SQL Server 설명서 버전을 참조하세요.

SQL Server 설명서

  1. CLR 데이터베이스 개체 배포

CLR 통합 보안

Microsoft .NET Framework CLR(공용 언어 런타임)과 Microsoft SQL Server 통합의 보안 모델은 다양한 유형의 CLR과 SQL Server 내에서 실행되는 비 CLR 개체 간의 액세스를 관리하고 보호합니다. 이러한 개체는 Transact-SQL 문이나 서버에서 실행되는 다른 CLR 개체에 의해 호출될 수 있습니다.

자세한 내용은 CLR Integration Security를 참조하세요.

CLR 어셈블리 디버깅

Microsoft SQL Server는 데이터베이스의 Transact-SQL 및 CLR(공용 언어 런타임) 개체 디버깅을 지원합니다. 디버깅은 언어 간에 작동합니다. 사용자는 Transact-SQL에서 CLR 개체로 원활하게 단계별로 실행할 수 있으며 그 반대의 경우도 마찬가지입니다.

자세한 내용은 CLR 데이터베이스 개체 디버깅을 참조하세요.

참고하십시오