Compartir por


Configuración del servidor: CLR habilitado

Se aplica a: SQL Server

Utilice la opción clr enabled para especificar si SQL Server puede ejecutar ensamblados de usuario. La opción clr enabled proporciona los valores que se indican a continuación:

Value Descripción
0 Ejecución de ensamblado no permitida en SQL Server.
1 Ejecución de ensamblado permitida en SQL Server.

Solo para WOW64: reinicie los servidores WOW64 para aplicar estos cambios. No se requiere el reinicio para otros tipos de servidor.

Cuando se ejecuta RECONFIGURE y se cambia el valor de ejecución de la opción clr enabled de 1 a 0, se descargan inmediatamente todos los dominios de aplicación que incluyen ensamblados de usuario.

Limitaciones

No se admite la ejecución de Common Language Runtime (CLR) con "agrupación ligera".

Deshabilite una de estas dos opciones: clr enabled o lightweight pooling. Entre las características que dependen de CLR y que no funcionan correctamente en modo de fibra se encuentran el tipo de datos hierarchyid, la función FORMAT, la replicación y la administración basada en directivas. Para obtener más información, consulte Configuración de servidor: agrupación ligera.

Aunque la opción de configuración clr enabled está habilitada en la base de datos de Azure SQL, no se admite el desarrollo de funciones de usuario CLR en la base de datos de Azure SQL.

Ya no se admite la seguridad de acceso del código

CLR usa la seguridad de acceso del código (CAS) de .NET Framework, que ya no se admite como un límite de seguridad. Un ensamblado CLR creado con la opción PERMISSION_SET = SAFE puede tener acceso a los recursos externos del sistema, llamar a código no administrado y adquirir privilegios sysadmin. En SQL Server 2017 (14.x) y versiones posteriores, la opción sp_configure, CLR Strict Security, mejora la seguridad de los ensamblados CLR. La opción clr strict security está habilitada de forma predeterminada y trata los ensamblados SAFE y EXTERNAL_ACCESS como si estuvieran marcados con UNSAFE. La opción clr strict security se puede deshabilitar para permitir la compatibilidad con versiones anteriores, pero no se recomienda hacerlo.

Recomendamos que firme todos los ensamblados con un certificado o clave asimétrica con el correspondiente inicio de sesión que tenga concedido el permiso UNSAFE ASSEMBLY en la base de datos master. Los administradores de SQL Server también pueden agregar ensamblados a una lista de los ensamblados en los que el motor de base de datos debe confiar. Para más información, vea sys.sp_add_trusted_assembly.

Ejemplos

El ejemplo siguiente muestra primero la configuración actual de la opción clr enabled y después habilita la opción estableciendo su valor en 1. Para deshabilitar la opción, establezca el valor en 0.

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