다음을 통해 공유


서버 구성: clr enabled

적용 대상: SQL Server

clr enabled 옵션을 사용하여 SQL Server에서 사용자 어셈블리를 실행할 수 있는지 여부를 지정합니다. clr enabled 옵션은 다음 값을 제공합니다.

설명
0 SQL Server에서 어셈블리를 실행할 수 없습니다.
1 SQL Server에서 어셈블리를 실행할 수 있습니다.

WOW64에만 해당: 이러한 변경 내용을 적용하려면 WOW64 서버를 다시 시작합니다. 다른 서버 유형의 경우 다시 시작할 필요가 없습니다.

RECONFIGURE를 실행하고 clr enabled 옵션을 1에서 0으로 변경하면 사용자 어셈블리가 포함된 모든 애플리케이션 도메인이 즉시 언로드됩니다.

제한 사항

경량 풀링에서는 CLR(공용 언어 런타임) 실행이 지원되지 않음

두 옵션 중 하나는 사용 불가:clr enabled 또는 lightweight pooling. CLR을 사용하며 파이버 모드에서 제대로 작동하지 않는 기능으로 hierarchyid 데이터 형식, FORMAT 함수, 복제 및 정책 기반 관리가 있습니다. 자세한 내용은 서버 구성 옵션: 경량 풀링을 참조하세요.

Azure SQL 데이터베이스에서 clr enabled 구성 옵션이 활성화되었더라도 CLR 사용자 함수 개발은 Azure SQL 데이터베이스에서 지원되지 않습니다.

코드 액세스 보안이 지원되지 않음

CLR은 더 이상 보안 경계로 지원되지 않는 .NET Framework의 CAS(코드 액세스 보안)를 사용합니다. PERMISSION_SET = SAFE로 만든 CLR 어셈블리에서 외부 시스템 리소스에 액세스하고, 비관리 코드를 호출하고, sysadmin 권한을 얻을 수 있습니다. SQL Server 2017(14.x) 이상 버전에서 sp_configure 옵션, clr strict security는 CLR 어셈블리의 보안을 향상시킵니다. clr strict security는 기본적으로 사용되며 SAFEEXTERNAL_ACCESS 어셈블리가 UNSAFE로 표시된 것처럼 처리됩니다. clr strict security 옵션은 이전 버전과의 호환성을 위해 사용하지 않도록 설정할 수 있지만 권장하지는 않습니다.

모든 어셈블리는 master 데이터베이스에서 UNSAFE ASSEMBLY 권한이 부여된 해당 로그인이 포함된 인증서 또는 비대칭 키로 서명하는 것이 좋습니다. 또한 SQL Server 관리자는 데이터베이스 엔진에서 신뢰해야 하는 어셈블리 목록에 어셈블리를 추가할 수도 있습니다. 자세한 내용은 sys.sp_add_trusted_assembly를 참조하세요.

예제

다음 예시에서는 먼저 clr enabled 옵션의 현재 설정을 표시한 다음 옵션 값을 1로 설정하여 옵션을 사용하도록 설정합니다. 이 옵션을 사용하지 않으려면 이 값을 0으로 설정합니다.

EXEC sp_configure 'clr enabled';
EXEC sp_configure 'clr enabled' , '1';
RECONFIGURE;